16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

 

【视频 & 交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

在上一节使用是配置文件的方式进行使用druid,这里在扩散下使用编程式进行使用Druid,在上一节我们新建了一个类:DruidConfiguration我在这个类进行编码:

 

package com.kfit.base.servlet;

import java.sql.SQLException;

import javax.sql.DataSource;

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

import org.springframework.boot.context.embedded.FilterRegistrationBean;

import org.springframework.boot.context.embedded.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.pool.DruidDataSource;

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

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

 

/**

 * druid 配置. 

 * 

 * 这样的方式不需要添加注解:@ServletComponentScan

 * @author Administrator

 *

 */

@Configuration

public class DruidConfiguration {

       

       /**

        * 注册一个StatViewServlet

        * @return

        */

       @Bean

       public ServletRegistrationBean DruidStatViewServle2(){

              //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.

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

              

              //添加初始化参数:initParams

              

              //白名单:

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

              //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.

              servletRegistrationBean.addInitParameter("deny","192.168.1.73");

              //登录查看信息的账号密码.

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

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

              //是否能够重置数据.

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

              return servletRegistrationBean;

       }

       

       /**

        * 注册一个:filterRegistrationBean

        * @return

        */

       @Bean

       public FilterRegistrationBean druidStatFilter2(){

              

              FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

              

              //添加过滤规则.

              filterRegistrationBean.addUrlPatterns("/*");

              

              //添加不需要忽略的格式信息.

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

              return filterRegistrationBean;

       }

       

       /**

        * 注册dataSouce,这里作为一个例子,只注入了部分参数信息,其它的参数自行扩散思维。

        * @param driver

        * @param url

        * @param username

        * @param password

        * @param maxActive

        * @return

        */

       @Bean

    public DataSource druidDataSource(@Value("${spring.datasource.driverClassName}") String driver,

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

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

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

                                      @Value("${spring.datasource.maxActive}") int maxActive

                                                              ) {

        DruidDataSource druidDataSource = new DruidDataSource();

        druidDataSource.setDriverClassName(driver);

        druidDataSource.setUrl(url);

        druidDataSource.setUsername(username);

        druidDataSource.setPassword(password);

        druidDataSource.setMaxActive(maxActive);

        

        System.out.println("DruidConfiguration.druidDataSource(),url="+url+",username="+username+",password="+password);

        try {

            druidDataSource.setFilters("stat, wall");

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return druidDataSource;

    }

       

}

 

 

 

 

这里的区别在于加入一个方法:druidDataSource进行数据源的注入(当然这么一选择上一章节在application.properties配置的方式是比较好,如果有特殊需求的话,也可以在这里进行注入)

如果同时进行了编程式的注入和配置的注入,配置的就无效了。

-----------------------------------------------------------------

实际中推荐使用配置文件的方式,参考:

(15)Spring Boot使用Druid和监控配置【从零开始学Spring Boot】:http://412887952-qq-com.iteye.com/blog/2292362

 

 

 

 视频&交流平台

à SpringBoot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

32 Spring Boot使用@SpringBootApplication注解从零开始学Spring Boot 

 

31 Spring Boot导入XML配置【从零开始学Spring Boot

 

 

 

更多查看博客: http://412887952-qq-com.iteye.com/

猜你喜欢

转载自412887952-qq-com.iteye.com/blog/2292376