发表于: 2020-09-11 23:37:28
1 1324
今天完成的事
application.yml 的多环境端口配置
springboot 整合druid,配置druid的监控,
1.通过 --- 把yml文件分成多文档块,再配置指定的环境端口.
#默认端口
server:
port: 8090
#设置要使用的环境端口
spring:
profiles:
active: dev
---
#开发环境端口
server:
port: 8091
spring:
profiles: dev
---
#测试环境端口
server:
port: 8092
spring:
profiles: prod
---
2.使用命令行的方式指定
--spring.profiles.active=dev或者打包之后用java -jar 包名.jar --spring.profiles.active=dev
3.虚拟机参数指定:-DSpring.profiles.active=dev
配置文件的加载顺序。
springboot启动会扫描一下位置的application.properties或者application.yml作为默认的配置文件
工程根目录:./config/
工程根目录:./
classpath:/config/
classpath:/
加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖底优先级的内容,形成互补配置
druid的监控
spring:
datasource:
username: root
password: .....
url: jdbc:mysql://localhost:3306/task4?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#初始化时建立物理连接的个数
initial-size: 5
#最小连接池数量
min-idle: 5
#最大连接池数量
max-active: 20
#获取连接时最大等待时间,单位毫秒
max-wait: 60000
#既作为检测的间隔时间又作为testWhileIdel执行的依据
time-between-eviction-runs-millis: 60000
#销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接
min-evictable-idle-time-millis: 300000
validation-query: SELECT "x"
#申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
test-while-idle: true
#申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
test-on-borrow: false
#归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
test-on-return: false
#是否缓存preparedStatement
pool-prepared-statements: true
filters: stat,wall
#配置监控统计拦截的过滤器,去掉后监控页面sql无法统计,"wall"用于防火墙
#当值大于0时poolPreparedStatements会自动修改为true
max-pool-prepared-statement-per-connection-size: 20
#合并多个DruidDataSource的监控数据
use-global-data-source-stat: true
#通过connectProperties属性来打开mergeSql功能;慢SQL记录
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
配置监控
/* 配置Druid的监控
1、配置一个管理后台的Servlet*/
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
Map<String,String> initParams = new HashMap<>();
initParams.put("loginUsername","admin");
initParams.put("loginPassword","123456");
//默认就是允许所有访问,加上localhost就是只允许本地访问
initParams.put("allow","localhost");
bean.setInitParameters(initParams);
return bean;
}
//2、配置一个web监控的filter
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map<String,String> initParams = new HashMap<>();
initParams.put("exclusions","*.js,*.css,/druid/*");
bean.setInitParameters(initParams);
//拦截所有请求
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
运行访问监控页面
有这个工具,当初做压测看时间花在哪里非常方便啊。
明天的计划:
tiles+thymeleaf拆分页面。
springboot+redis。
遇到的问题:
收获:
评论