Spring Boot基础搭建(二)

接到上一篇:Spring Boot的基础搭建

重写数据源:

druid的基本配置:

这里我们要实现使用druid数据源和配置druid的监控功能。

在pom.xml中dependencies

下添加:

<dependency>

 <groupId>com.alibaba</groupId>

 <artifactId>druid</artifactId>

 <version>1.0.29</version>

</dependency>

加载完druid包后:把SpringBootStudyApplication拖到com包下因为spring boot的启动扫描时扫描它同类包和下层包的文件,所以我们尽量放在最顶层的包下面。如下:

然后在com下添加包config,用于配置一些框架的信息到spring中,在com下继续添加包utils用来编写工具类和重写一些接口。如下:

在config包添加DruidConfiguration里面代码如下:

package com.config;


import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;

import org.springframework.aop.Advisor;

import org.springframework.aop.support.DefaultPointcutAdvisor;

import org.springframework.aop.support.JdkRegexpMethodPointcut;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;


import javax.sql.DataSource;

import java.sql.SQLException;


/**

* Created by onion on 2017-03-28 14:01.

*/

@Configuration

public class DruidConfiguration {


  @Bean

  public DataSource dataSource(@Value("${spring.datasource.url}") String url,

                               @Value("${spring.datasource.username}") String username,

                               @Value("${spring.datasource.password}") String password) {

      DruidDataSource druidDataSource = new DruidDataSource();

      druidDataSource.setUrl(url);

      druidDataSource.setUsername(username);

      druidDataSource.setPassword(password);

      try {

          //开启druid sql防火墙

          druidDataSource.setFilters("stat, wall");

      } catch (SQLException e) {

          e.printStackTrace();

      }

      return druidDataSource;

  }


  //配置druid监控结果访问相关配置

  @Bean

  public ServletRegistrationBean druidServlet() {

      ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");

      servletRegistrationBean.addInitParameter("resetEnable", "true");

      servletRegistrationBean.addInitParameter("loginUsername", "druid");

      servletRegistrationBean.addInitParameter("loginPassword", "druid");

      servletRegistrationBean.addInitParameter("allow", "127.0.0.1");

      return servletRegistrationBean;

  }


  //配置druid监控过滤器

  @Bean

  public FilterRegistrationBean filterRegistrationBean() {

      FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();

      filterRegistrationBean.setFilter(new WebStatFilter());

      filterRegistrationBean.addUrlPatterns("/*");

      filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

      filterRegistrationBean.setOrder(5);

      return filterRegistrationBean;

  }


  //添加aop的advice

  @Bean

  public DruidStatInterceptor druidStatInterceptor() {

      return new DruidStatInterceptor();

  }


  //添加aop的pointcut

  @Bean

  public JdkRegexpMethodPointcut jdkRegexpMethodPointcut() {

      JdkRegexpMethodPointcut jdkRegexpMethodPointcut = new JdkRegexpMethodPointcut();

      jdkRegexpMethodPointcut.setPatterns("com.tgb.service.*");

      return jdkRegexpMethodPointcut;

  }


  //设置默认的aop配置对应的是原来的<aop:advisor>

  @Bean

  public Advisor druidAdvisor() {

      DefaultPointcutAdvisor defaultPointcutAdvisor = new DefaultPointcutAdvisor();

      defaultPointcutAdvisor.setPointcut(jdkRegexpMethodPointcut());

      defaultPointcutAdvisor.setAdvice(druidStatInterceptor());

      return defaultPointcutAdvisor;

  }



}


第一个bean中@Value取的是application.properties中的参数,更多参数的配置可以去查一下我这里只是配置了数据库的连接信息,说明一下没配置数据库的驱动类型是因为druid会从url中去读取数据库驱动类型如:mysql中的路径前缀为jdbc:mysql。。sqlserver的前缀为:jdbc:sqlserver。。等等。druid会取第一个冒号后面的字符串去判断你的数据库类型然后去找到对应的数据库驱动。

第二个bean中的addInitParameter是添加初始参数配置对应的是原来web.xml中的init-param标签下的参数,设置了登录信息druid监控页面的信息和只允许本机去访问。

第三个bean是用来监控web资源的。其中addUrlPatterns是设置过滤的请求路径的

更多配置请自行查阅

重新启动服务先访问:http://localhost:8080/allUser.html,在访问http://localhost:8080/druid/

要求我们输入用户名和密码上面配置的都是druid,输入后就可以查看到一些监控信息。

成功后就可以在sql监控中看到我们刚刚执行的sql。<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值