common-boot
针对SpringBoot封装的一个 common boot如果需要common-boot 程序生效 需要将SpringBoot启动的 Application 类继承 cn.liming.common.BaseApplication 并且重写BaseApplication 的两个构造方法
public BaseApplication(ApplicationEventClient applicationEventClient, Object... sources)
此构造方法第一个参数为程序启动监听接口,第二个参数为org.springframework.boot.SpringApplication对象的构造方法参数,一般传入自己程序的Application类的class
public BaseApplication(Object... sources)
此构造方法参数为org.springframework.boot.SpringApplication对象的构造方法参数,一般传入自己程序的Application类的class然后调用对象run方法 传入main 方法中的字符串数据 来启动程序
当控制台日志打印出:“common-boot 启动完成”时说明common-boot 程序已经正常加载可以使用模块中的功能
模块中特有功能说明: 此模块是基于SpringBoot 配置封装具体配置属性请参照:cn.liming.CommonPropertiesFinal 的静态字段
属性字段请配置:application.properties
公共的Controller
使用ThreadLocal 记录当前请求的request session respone
cn.liming.controller.base.AbstractBaseControl
在新建Controller 时请继承此类
cn.liming.controller.base.AbstractMultipartFileBaseControl
文件上传Controller 在需要接收上传文件请继承此类自动加载拦截器
程序会对指定包下就行拦截器扫描创建 请配置
interceptor.initPackageName 属性
所有拦截器请继承 cn.liming.common.interceptor.BaseInterceptor 并且添加 cn.liming.common.interceptor.InterceptorPattens 注解来实现控制拦截哪些url 该类主要实现公共Controller 属性自动解析和记录请求错误信息
SpringUtil 操作集成
cn.liming.common.spring.SpringUtil 主要对Spring容器简单管理 getBean() getEnvironment()
同时提供SpringBoot 程序监听接口 cn.liming.common.spring.ApplicationEventClient 在创建SpringBoot Application类时,请继承
cn.liming.common.BaseApplication 该类主要实现对该程序进行初始化和接口注入启动自动加载资源接口
程序会在Spring 容器启动回调接口中自动初始化指定包下的所有类的指定方法,并可以支持加载排序请配置 preload.packageName 属性
在需要的类上增加 cn.liming.common.PreLoadClass 注解
对需要的方法增加 cn.liming.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.liming.cache.ObjectCache 类主要负责缓存操作
ObjectCache.config(Class cls) 配置缓存的默认属性 cls 可以配置一个
cn.liming.cache.CacheConfig 注解 cls 中配置缓存的key
的静态不可更改的字符串属性 属性者可以配置 cn.liming.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.liming.pool.ThreadPoolService 注意负责线程池的创建和统一管理 newCachedThreadPool(Class class1) 创建线程池 参数为线程池需要负责类 如需要配置线程池相关参数 则需要对class 增加注解 cn.liming.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() 关闭所有线程池