开发Tips
1、项目构建与运行
1.1、模块增加新的profile
1、模块的parent目录的pom.xml增加新的profile
2、resource目录下增加一份相同的profile配置 (注:resource下已区分换)
3、注意勾选右侧maven视图中需要打包的profile,确保执行的profile与打包的一致
2、业务模块
2.1、 带可变参数的ResultMessage
USER_PHONE_NUMBER_HAS_EXISTED(330703, "手机号【{0}】已存在"),
注:同步修改国际化i18n下的多语言映射文件
2.2、 集成druid监控
注释掉koca.jdbc配置,使用spring-jdbc原生配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://10.202.61.51:3306/kems-admin-dev?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&zeroDateTimeBehavior=CONVERT_TO_NULL
username: kems-dev
password: kingdom123_#@
druid:
# 初始化大小,最小,最大
initial-size: 8
min-idle: 8
max-active: 32
# 配置获取连接等待超时的时间(毫秒)
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
# 配置有一个连接在连接池中的最小生存时间,单位是毫秒
min-evictable-idle-time-millis: 300000
time-between-eviction-runs-millis: 60000
# 打开PSCache,指定每个连接上PSCache的大小
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: -1
validation-query: SELECT 1 FROM DUAL
validation-query-timeout: 2000
test-on-borrow: false
test-on-return: false
test-while-idle: true
# 配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
# filters: stat, wall, log4j
filters: stat, wall
# 通过connectProperties属性来打开mergeSql功能,慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
filter:
stat:
enabled: true
wall:
enabled: true
config:
delete-allow: false
drop-table-allow: false
stat-view-servlet:
enabled: true
login-username: druid
login-password: 123456
url-pattern: /druid/*
reset-enable: true
allow: #IP白名单,不填允许所有IP访问
deny: #IP黑名单
web-stat-filter:
enabled: true
url-pattern: /*
2.3、大附件上传
前后端均使用分片、断点续传的接口, 参照文件管理-附件管理中的接口,文件大小限制配置如下
1、nginx.conf文件大小限制修改
client_max_body_size 1024m;
proxy_connect_timeout 10;
proxy_send_timeout 60;
proxy_read_timeout 60;
client_header_buffer_size 10240k;
large_client_header_buffers 4 10240k;
2、bootstrap.yml文件大小限制修改
spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB
3、application.yml 文件代销限制修改
file.max-size=1073741824 # 1024×1024×1024=1024M
3、微服务
3.1 注册中心减少服务列表刷新间隔
注册中心配置
eureka:
security:
enabled: false #为true开启认证,不配置默认为false
server:
eviction-interval-timer-in-ms: 3000 # 服务器清理失效节点的时间间隔, 默认60s
enable-self-preservation: false
use-read-only-response-cache: false
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://admin:123456@${EUREKA_HOST:localhost}:${EUREKA_PORT:8085}/eureka/
服务配置
eureka:
instance:
prefer-ip-address: true
lease-expiration-duration-in-seconds: 9 # 服务端收到客户端服务后,等待下次心跳的超时时间
lease-renewal-interval-in-seconds: 3 # 服务实例续约的时间间隔
client:
service-url: # eureka注册地址,将自己注册到eureka中,以便展示本机ip地址
defaultZone: http://admin:123456@${EUREKA_HOST:localhost}:${EUREKA_PORT:8085}/eureka/
网关配置(gateway.yml)
loadbalancer:
cache:
enabled: true
ttl: 3s # 设置缓存刷新时间
4、工具
4.1 maven helper插件 查看项目依赖
4.2 RestfulTookit-fix插件 根据uri快速定位到controller中的函数
4.3 Mybatis Log插件 控制台打印执行的sql语句
4.4 Lombok插件 减少getset代码
4.5 Code Vision IDEA自带(设置-编辑器-嵌入提示),勾选后可以在代码上显示有几处用法,支持快速跳转