从0开始搭建一个较健壮SpringBoot项目
个人经验笔记
1.创建Maven项目导入依赖
项目模块划分:
application 启动层 Application springboot启动类 application.xml(项目名称,服务端口,)等配置文件 ApplicationConfig(用来加载其他各模块包扫描) 跳板机AutoProxySsh(用于本地Socket连接内网集群,再连接内网的其他服务)
basic 数据层 Mybatis的spring配置类及Mapper注解定义(HimTddlMapper) mapper接口 mapper.xml文件 实体类(DO DTO VO FORM DATA) mybatis-config 配置一下驼峰 generator自动生成器
common 通用层 全局插件(Redis工具及配置,ES工具及配置) 全局常量 全局异常 返回结果 全局工具(DateUtil,StringUtil, JSONUtil,HttpUtil等) common实体类(公司员工类,部门类等)
core 核心业务层 facade repository task 分布式锁
test 测试层 applicationTest启动类 applicationConfig(加载其他各个模块的包扫描) 跳板机 testCase(各个层覆盖的用例) 测试父类
web 网络层 controller tokenManager SessionUtil 登录拦截器
引入pom依赖
父pom依赖 主要是全局依赖及各依赖版本号配置
各模块子pom依赖 各个模块所需依赖
application.xml 文件
server.port=7001
project.name=him-dashboard
# �ڱ�����ʱ��Ĭ����test��������������ʱ��Ҫͨ�� -Dspring.profiles.active= ��ָ��
spring.profiles.active=dev
# aop
spring.aop.proxy-target-class=true
#pagehelper����
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
#zone and time format
spring.jackson.time-zone=Asia/Shanghai
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss.SSS
#����
druid.driverClassName=com.mysql.cj.jdbc.Driver
druid.initialSize=8
druid.minIdle=4
druid.maxActive=20
druid.maxWait=3000
#him�� �DZ�������
him.druid.driverClassName=com.mysql.cj.jdbc.Driver
him.druid.initialSize=8
him.druid.minIdle=8
him.druid.maxActive=40
him.druid.maxWait=10000
#grpc
#grpc.server.address = 192.168.1.160
#grpc.server.port = 13086
#grpc broker��
grpc.client.broker.address= static://192.168.1.160:13086
grpc.client.broker.negotiationType=PLAINTEXT
#grpc him��
grpc.client.im.address=static://192.1.130.230:16061
grpc.client.im.negotiationType=PLAINTEXT
#钉钉接口所需要的一些权限key
dingDing.appKey=dingbnj867zntkkjtsaq
dingDing.appSecret=CtKfc0eixLV1o6WI2EWLENZY9LFrIeODM1HMo5rdAMKQLtNzoTw9hpgSUt-I2_h7
dingDing.agentId=328770182
dingDing.token=123456
dingDing.aesKey=4g5j64qlyl3zvetqxz5jiocdr586fn2zvjpa8zls3ij
dingDing.corpId=ding62e45896a5b1289f35c2f4657eb6378f
dingDing.loginAppId=dingoahcmdtal2tnzuyhib
dingDing.loginAppSecret=c-Jx-wzFNxnCS1Zpf4PPTkTiZG1dc6SV_L6pN8qQED5g1uhwoLP3kskdl6m5axle
#redis-config
# 连接超时时间(毫秒)
spring.redis.timeout=3000
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.lettuce.pool.max-wait=10000
# 连接池中的最大空闲连接
spring.redis.lettuce.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.lettuce.pool.min-idle=0
# 连接池关闭超时时间
spring.redis.lettuce.shutdown-timeout=100
#文件上传大小限制
server.tomcat.max-http-post-size=-1
spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=20MB
其他需要:
Swagger配置
elistic apm配置
日志打印
分页pageHelper
异常处理