針對SpringBoot 封裝的一個方便快捷的web 程式
<parent>
<artifactId>common-parent</artifactId>
<groupId>cn.jiangzeyin</groupId>
<version>version</version>
</parent>
<dependency>
<groupId>cn.jiangzeyin</groupId>
<artifactId>common-boot</artifactId>
</dependency>
version 請更換為實際版本號
公共的Controller
使用ThreadLocal 記錄當前請求的request session respone
cn.jiangzeyin.controller.base.AbstractBaseControl
在新建Controller 時請繼承此類
cn.jiangzeyin.controller.base.AbstractMultipartFileBaseControl
檔案上傳Controller 在需要接收上傳檔案請繼承此類
自動載入攔截器
程式會對指定包下就行攔截器掃描建立 請配置
interceptor.initPackageName 屬性
所有攔截器請繼承 cn.jiangzeyin.common.interceptor.BaseInterceptor 該類主要實現公共Controller 屬性自動解析和記錄請求錯誤資訊
SpringUtil 操作整合
cn.jiangzeyin.common.spring.SpringUtil 主要對Spring容器簡單管理 getBean() getEnvironment()
同時提供SpringBoot 程式監聽介面 cn.jiangzeyin.common.spring.ApplicationEventClient 在建立SpringBoot Application類時,請繼承
cn.jiangzeyin.common.BaseApplication 該類主要實現對該程式進行初始化和介面注入
啟動自動載入資源介面
程式會在Spring 容器啟動回撥介面中自動初始化指定包下的所有類的指定方法,並可以支援載入排序
請配置 preload.packageName 屬性 在需要的類上增加 cn.jiangzeyin.common.PreLoadClass 註解 對需要的方法增加 cn.jiangzeyin.common.PreLoadMethod 註解 注意:方法必須為public static
@PreLoadClass
public class test {
// 值越小越先載入
@PreLoadMethod(1)
public static void load1() {
System.out.println("load1");
}
@PreLoadMethod(2)
public static void load2() {
System.out.println("load2");
}
key-value 記憶體快取
cn.jiangzeyin.cache.ObjectCache 類主要負責快取操作
ObjectCache.config(Class cls) 配置快取的預設屬性 cls 可以配置一個cn.jiangzeyin.cache.CacheConfig 註解 cls 中配置快取的key 的靜態不可更改的字串屬性 屬性者可以配置 cn.jiangzeyin.cache.CacheConfigField 註解
例項:
@CacheConfig(value = 5, UNIT = TimeUnit.MINUTES)
public class cacheConfig {
// sss快取 根據class 的配置讀取
public static final String SSS = "sss";
// ttt 快取1 天
@CacheConfigField(value = 1, UNIT = TimeUnit.DAYS)
public static final String TTT = "ttt";
}
如果沒有配置 預設快取時間為10分鐘
執行緒池基本服務
cn.jiangzeyin.pool.ThreadPoolService 注意負責執行緒池的建立和統一管理
newCachedThreadPool(Class class1) 建立執行緒池 引數為執行緒池需要負責類 如需要配置執行緒池相關引數 則需要對class 增加註解 cn.jiangzeyin.pool.PoolConfig
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface PoolConfig {
// 執行緒池核心數
int value() default 0;
// 執行緒池最大執行緒數
int maximumPoolSize() default Integer.MAX_VALUE;
// 執行緒空閒多久將銷燬
long keepAliveTime() default 60L;
// 時間單位
TimeUnit UNIT() default TimeUnit.SECONDS;
// 執行緒池拒絕執行處理策略
PolicyHandler HANDLER() default PolicyHandler.Caller;
}
getPoolQueuedTasks(Class tClass) 獲取執行緒池佇列數
getPoolRejectedExecutionCount(Class tclass) 獲取執行緒池取消執行的任務數
shutdown() 關閉所有執行緒池