导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
现在可以直接导入 druid-spring-boot-starter实现自动配置,不需要再导入单独的druid
添加监控配置
在properties或者yml配置文件中添加配置,下面是基础配置,具体参照官方文档
spring:
datasource:
username: root
password: 123456
url: "jdbc:mysql://localhost:3306/jdbc"
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 状态监控
filter:
stat:
enabled: true #默认为true
db-type: mysql
# 监控过滤器
web-stat-filter:
enabled: true #是否启用StatFilter默认值false
exclusions: "*.js,*.css,/druid/*" #排除静态资源和druid下
url-pattern: /* #设置拦截所有
#监控页面
stat-view-servlet:
enabled: true #是否启用StatViewServlet(监控页面)默认值为false
login-username: root #设置监控页面的帐号
login-password: 123456 #设置监控页面的密码
allow: #设置所有能够访问监控页面,如果allow没有配置或者为空,则允许所有访问
deny: #deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。
测试
写一个控制器来测试
@Controller
public class DruidStatController {
@Autowired
JdbcTemplate jdbcTemplate;
@ResponseBody
@GetMapping("/stat")
public Object druidStat(){
return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
}
@ResponseBody
@GetMapping("/query")
public Map<String, Object> query(){
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from dep");
return maps.get(0);
}
}
/stat可以直接返回监控状态的json数据
访问query后从数据库查询到数据,查看druid监控页面,监控到了sql语句