Fortune-Commons正式開源啦

Fortune Commons 是筆者在工做以來的一些技術積累,雖然是很[低端],可是對於Java入門或者初入Java開發的工做者來講,也是一個不錯的學習資源,今天特意整合出來。

Github地址:https://github.com/landy8530/...git

項目介紹

項目特點

項目深受Java 勸退師,Apache 和 Spring Cloud 等知名開源架構成員小馬哥(Github: mercyblitz)的思想影響,本項目採用瞭如今廣泛採用的自動化配置、註解化開發等特色,開發過程很是的便利。代碼以下所示:程序員

/**
 * @author: Landy
 * @date: 2019/4/7 00:04
 * @description: WebApplicationContext配置類,須要根據具體的業務邏輯進行配置,好比緩存門面類的配置
 * 須要在web端工程裏具體配置
 */
@Configuration
@EnableAspectJAutoProxy // 至關於 xml 中的 <aop:aspectj-autoproxy/>
@EnableTransactionManagement // 開啓註解事務
@Import({BeanInitializeCompletedConfiguration.class})
public class RootApplicationContextConfiguration {

    // 配置DataCacheFacade
    @Bean(name = DataCacheFacade.BEAN_NAME_DATA_CACHE_FACADE)
    public DataCacheFacade dataCacheFacade() {
        DataCacheFacade dataCacheFacade = new DataCacheFacade();
        List<CacheDataLoadAdapter> cacheDataAdapterList = new ArrayList<>();
        cacheDataAdapterList.add(new CodeCacheDataLoadAdapter());
        dataCacheFacade.setCacheDataAdapterList(cacheDataAdapterList);
        return dataCacheFacade;
    }

    public class CodeCacheDataLoadAdapter extends CacheDataLoadAdapter {
        private List<String> keys=new ArrayList<String>();
        @Override
        public boolean loadData() {
            ...
            return true;
        }

        @Override
        public List<String> getStoreKeys() {
            return keys;
        }
    }
}

項目名稱

因爲絕大多數程序員都是命苦的娃,都但願有朝一日可以經過代碼改變本身的命運,因此我爲此項目定了一個fortune的名稱,但願咱們你們都可以經過代碼改變世界(哈哈)!github

版本約束

  • Spring:5.x+
  • JDK:1.8+

版本計劃

爲適應目前國內各個行業不一樣的技術分佈,目前計劃三個大版本的計劃,說明以下:web

版本 功能說明
1.x 數據緩存處理和excel/pdf導出組件,集成Spring MVC
2.x 數據緩存處理和excel/pdf導出組件,集成Restful API
3.x 數據緩存處理和excel/pdf導出組件,集成Restful API,而且計劃加入Spring Boot/Spring Cloud等

注意:以上各個版本均可以增長其餘組件。spring

工程說明

目前最新版本爲v1.0.x,含有如下子工程(子模塊),分別說明以下(也可參考wiki):sql

commons-core

主要是本項目所需的一些核心功能實現,好比BeanCopier工具封裝,讀取yml文件工具,Freemarker解析實現,ApplicationContext工具類,Spring容器初始化後統一操做的listener實現以及其餘一些工具類支持。數據庫

commons-datacache

本模塊動態實現了各主流緩存中間件的實現,能夠自由切換,依賴於commons-nosql模塊。目前實現瞭如下幾種:segmentfault

  • 本地內存(Memory)
  • Mongodb
  • Memcached
  • Redis(即將實現)

commons-nosql

NoSql模擬關係型數據庫的CRUD操做,目前有Mongodb實現。緩存

commons-export

實現了excel和pdf導出組件服務器

commons-web

封裝了web端常見的一些配置操做

commons-web-springmvc

封裝了spring mvc的一些配置操做,依賴於commons-web子模塊。

fortune-commons-example

本項目的演示模塊,主要是用於測試用途。

如何對該開源項目進行貢獻

  1. 代碼大可能是手敲,因此不免會有錯誤,你能夠幫我Bug,提交issues或者PR。
  2. 不少知識點我可能沒有涉及到,因此你能夠對其餘知識點進行補充或者加入其餘的組件。
  3. 爲了使項目更加的透明化,便利化,也能夠參與wiki的編寫工做。

爲何要作這個開源組件?

初始想法源於本身工做中遇到的各類坑,主要目的是爲了經過這個開源平臺來幫助一些在學習 Java 或者直接在本身公司中使用或者擴展本身的項目。

Git操做說明

切換分支

fork本工程後能夠按照以下操做便可,

  • 切換到master分支,而且更新最新遠程庫中的代碼

    • git checkout master
    • git pull/git fetch

建立分支

  • 建立本身的本地分支,以master爲源建立

    • git checkout -b fortune-commons-export
  • 查看是否建立成功

    • git branch
    fortune-commons-beanutils
    * fortune-commons-export
      fortune-commons-memcached
      master

星號(*)表示當前所在分支。如今的狀態是成功建立的新的分支而且已經切換到新分支上。

同步分支

  • 把新建的本地分支push到遠程服務器,遠程分支與本地分支同名(固然能夠隨意起名)

    • git push origin fortune-commons-export:fortune-commons-export

建立標籤

  • git tag -a v1.0.1 -m "fortune commons v1.0.1"
  • git push origin v1.0.1
相關文章
相關標籤/搜索