1. 程式人生 > 實用技巧 >從0開始搭建一個較健壯SpringBoot專案

從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
異常處理