SpringBoot 使用druid监控数据库

来源:互联网 发布:淘宝会员怎么解绑虾米 编辑:程序博客网 时间:2024/06/10 20:19

1、添加maven依赖注解

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.1.3</version>        </dependency>

2、配置application.yml文件,添加druid配置

druid:  datasource:    type: com.alibaba.druid.pool.DruidDataSource    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://192.168.1.113:3306/test?useUnicode=true&characterEncoding=utf-8    username: root    password: root    # 下面为连接池的补充设置,应用到上面所有数据源中    # 初始化大小,最小,最大    initialSize: 5    minIdle: 5    maxActive: 20    # 配置获取连接等待超时的时间    maxWait: 60000    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒    timeBetweenEvictionRunsMillis: 60000    # 配置一个连接在池中最小生存的时间,单位是毫秒    minEvictableIdleTimeMillis: 300000    validationQuery: SELECT 1 FROM DUAL    testWhileIdle: true    testOnBorrow: false    testOnReturn: false    # 打开PSCache,并且指定每个连接上PSCache的大小    poolPreparedStatements: true    maxPoolPreparedStatementPerConnectionSize: 20    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙    filters: stat,wall,log4j    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录    connectionProperties:      druid:        stat:          mergeSql: true          slowSqlMillis: 5000    # 合并多个DruidDataSource的监控数据

3、添加控制类DruidDBConfig

/** * druid * @author 陈梓平 * @date 2017/9/26. */@Configurationpublic class DruidDBConfig {    private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class);    public static final String DRUIDDBCONFIG_YML = "druid";    @Bean(name = "druidDB")    @ConfigurationProperties(prefix = DruidDBConfig.DRUIDDBCONFIG_YML)    public DataSource druidDataSource() {        return DataSourceBuilder.create().build();    }}

4、配置druid的启动filter

import com.alibaba.druid.support.http.WebStatFilter;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",        initParams={                @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源        })public class DruidStatFilter extends WebStatFilter {}

5、配置druid的启动视图控制

import com.alibaba.druid.support.http.StatViewServlet;import javax.servlet.annotation.WebInitParam;import javax.servlet.annotation.WebServlet;@SuppressWarnings("serial")@WebServlet(urlPatterns = "/druid/*",        initParams={                @WebInitParam(name="allow",value="192.168.1.113,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)                @WebInitParam(name="deny",value="192.168.1.112"),// IP黑名单 (存在共同时,deny优先于allow)                @WebInitParam(name="loginUsername",value="admin"),// 用户名                @WebInitParam(name="loginPassword",value="123456"),// 密码                @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能 })public class DruidStatViewServlet extends StatViewServlet {}

6、在启动application类中添加注解

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.ServletComponentScan;@SpringBootApplication@ServletComponentScanpublic class SpringbootDatasourceDemoApplication {    public static void main(String[] args) {        SpringApplication.run(SpringbootDatasourceDemoApplication.class, args);    }}

7、测试
访问http://192.168.1.113:8081/druid/login.html
登录
使用配置的账号密码登录(admin,123456)
首页
即可查看数据库相关信息

原创粉丝点击