基于SpringBoot2进行封装的通用型工具类,包含配置类、工具类等
软件架构说明
-
com.CommonUtils.CommonPools自定义连接池,目前是放进了基于JSCH框架的连接池,
基于Apache的common pool2框架进行封装。主要是针对SSH、SFTP这种类型的连接做好资源管控功能。(1)
com.CommonUtils.CommonPools.Definition.JschSessionPool.java
定义了整个JSCH连接池设计
(2)com.CommonUtils.CommonPools.Config.JschSessionPoolConfig.java
定义了当需要使用create bean操作的时候,会提供一种默认方式创建,默认设置为最大5个连接数,其中2个连接数闲置,建议连接数别设置过大,根据经验来说,连接数过大会导致报错Connection reset异常
-
com.CommonUtils.Jdbc主要是封装了数据库连接池、事务管理器AOP触发规则等(1)
com.CommonUtils.Jdbc.Bean.DBBaseInfo.AbstractDBInfo.java
属于DBInfo.java与DBInfoForDataSource.java的抽象类,包装了需要执行的SQL与对应的绑定变量
(2)com.CommonUtils.Jdbc.Bean.DBBaseInfo.DBInfo.java
这个类用于包装jdbc驱动名称、jdbc地址,用户名与密码,创建数据库连接池或使用流模式读取数据会用上
(3)com.CommonUtils.Jdbc.Bean.DBBaseInfo.DBInfoForDataSource.java
这个类用于包装数据库连接池与JdbcTemplate实例,使用流模式读取数据会用上
(4)com.CommonUtils.Jdbc.Bean.Url.*.java
这个包下所有的类,分别对应不同的数据库,都是根据给定参数,包装出jdbc地址需要的信息,然后通过com.CommonUtils.Utils.DBUtils.DBUrlUtil工具类生成jdbc地址
(5)com.CommonUtils.Jdbc.DataSources.HikariDataSourceConfig.java
这个是Hikari数据库连接池默认创建方式,当需要create bean操作的时候可以用上
(6)com.CommonUtils.Jdbc.DataSources.TomcatOldDataSourceConfig.java
这个是使用Tomcat的DBCP数据库连接池,当需要create bean操作的时候可以用上,一般是用于JDBC驱动比较老的情况,当时项目用的是Teradata,提供的数据库驱动相对老旧,不能使用Hikari,只能用这个,不过建议别用在版本太新的TOMCAT上面,因为新版本不支持老的JDBC驱动,会导致这个数据库连接池报错
(7)com.CommonUtils.Jdbc.TransactionAttributeConfig.java
这个类包装了配置针对哪些方法进行事务管理,已经封装了相对常用的,如方法名前缀为batchInsert,find等,这个类不需要自己去调用,是由com.CommonUtils.Jdbc.TxAdviceAdvisorConfig.java类来触发即可
(8)com.CommonUtils.Jdbc.TxAdviceAdvisorConfig.java
这个类针对哪些包里面的Dao方法或Service方法进行事务拦截处理
-
com.CommonUtils.Kafka主要是封装了Kafka生产者、消费者配置,Kafka-Stream基于LowLevel的处理模板(1)
com.CommonUtils.Kafka.Bean.KafkaMessage
包装的Kafka消息数据
(2)com.CommonUtils.Kafka.Stream.Config.LowLevel.*.java
这个是Kafka-Stream基于LowLevel的相关操作工具,不过目测现在都是用Spark为主,这里不做过多介绍,有兴趣可以看源码
(3)com.CommonUtils.Kafka.ConsumerRelatedConfig.java
这个是Kafka消费者默认配置,需要与create bean搭配使用
(4)com.CommonUtils.Kafka.ProducerRelatedConfig.java
这个是Kafka生产者默认配置,需要与create bean搭配使用
-
com.CommonUtils.MiddleWare主要是封装了对中间件配置类,目前主要是以TOMCAT为主(1)
com.CommonUtils.MiddleWare.GracefulShutdowns.GracefulShutdownTomcat.java
针对优雅关闭Tomcat的需求,包装了一套配置类
(2)com.CommonUtils.MiddleWare.ServletWebServerFactoryConfig.java
针对Tomcat底层参数做配置,如http跳转至https功能;配置最大连接数、最大线程数等
(3)目前上述两个类已经做了自动化配置,路径在com.CommonUtils.Web.WebConfiguration.java
-
com.CommonUtils.MybatisMyBatis的底层配置(1)
com.CommonUtils.Mybatis.Config.MybatisBaseConfig.java
生成MyBatis基础配置,生成会话工厂的时候会用上,一般不需要自己调用
(2)com.CommonUtils.Mybatis.Config.PageConfig.java
MyBatis有一个分页插件是PageHelper,针对这个东西做配置,生成会话工厂的时候会用上,一般不需要自己调用
(3)com.CommonUtils.Mybatis.Config.SqlSessionFactoryConfig.java
MyBatis的会话工厂配置,需要与create bean搭配使用
(4)com.CommonUtils.Mybatis.Log.Impl.MyBatisSqlLogBaseImpl.java
MyBatis日志输入,级别为基本日志
(5)com.CommonUtils.Mybatis.Log.Impl.MyBatisSqlLogDetailImpl.java
MyBatis日志输入,级别为详细日志
未完待续
- 无需安装,使用ide软件即可打开,只是说需要导出为jar包,放到maven仓库供其他项目使用
- 若需要使用此工具类,CommonUtil的maven依赖,如Jsch,common-poo2这些框架也需要在调用方也存在,否则会包ClassNotFoundException异常