Skip to content

zeimao77/zeimao77-productivity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zeimao77-productivity

它想要干什么?

  • 快速的构建一个可执行的JAR包,收集依赖包;
  • 初始化最小的环境(日志配置境等),快速开启业务功能编程;
  • 提供常用工具等的支持;

快速开始一个jar

  1. 导入一个工程

如果您希望用maven管理您的项目,可以使用app-main-mvn项目导入;
如果您希望用gradle管理您的项目,可以使用app-main项目导入;
如果想了解详细信息请移步项目README;

  1. 如果您想依赖在docker容器中执行
## 前台执行
docker run --rm -it -v /home/docker/app-main/libs:/home/user0 openjdk:17.0.2-jdk-oraclelinux8\
 -w /home/user0 java -Dlog.level=INFO -Dlog.file=/home/user0/app.log -jar app-main.jar
## 守护进程执行
docker run -d -v /home/docker/app-main/libs:/home/user0 -w /home/user0 openjdk:17.0.2-jdk-oraclelinux8\
 java -Dlog.level=INFO -Dlog.file=/home/user0/app.log -jar app-main.jar

环境及配置

top.zeimao77.product.main.BaseMain类提供了日志及配置环境,您只需要让主函数类继承它就可以使用它了;

BaseMain提供了log4j2的日志支持,您可以使用环境变量或者命令行参数来简单配置它;

  • log.level : 日志级别,缺省为DEBUG;
  • log.file : 指定日志文件路径以开启文件日志功能;
  • log.rolling : TRUE:开启滚动日志,缺省为FALSE;
  • log.stdout.enable : FALSE 关闭终端log日志输出 缺少为TRUE;
  • log.rolloverStrategyMax : 最多保留几个历史日志,缺省值10;

当然它仅仅是一个默认的实现,其优先值为3,如果您觉得它很烂完全可以自己通过log4j2.xml等文件重新配置,配置文件有较高的优先级;

BaseMain提供了默认的环境配置,您只需要在classpath或者用户目录下放置一个localcontext.properties文件即可;

如果在程序中显式读取配置,调用LocalContext.get***()方法就可以;
如果您需要在执行时指定该配置,您也可以通过环境变量或者命令行参数来指定它;

  • local.context.file 支持您通过一个路径来指定一个配置文件;
  • local.context.active 如果有多个环境需要区分,可以提前将配置放置到classpath下,然后通过参数指定它;例如:-Dlocal.context.active=dev将加载localcontext-dev.properties配置文件;

配置的主要作用还是通过ComponentFactory类来初始化配置常用组件,使用它可以简化代码;

代码示例

工具

数据库

安全

任务

本地缓存

IConverter提供了键值对转换功能,其有4个抽象的实现对应了4种不同的刷新机制;

  • AbstractNonReFreshConverter: 没有刷新机制的转换器,仅在第一次使用调用刷新;

  • AbstractIntervalRefreshConverter: 固定间隔(秒)刷新,刷新规则时如果过期将加上间隔时间设置为过期时间;

  • AbstractIntervalDayRefreshConverter: 每天刷新,以临界点为限,临界点后的第一次使用时刷新;

  • AbstractCustomRefreshConverter: 通过setExpiryTime(expiryTime)自定义过期时间,最为灵活;

  • 代码示例

HTTP

JSON

序列化

邮件

EXCEL

About

效率包

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages