1. 程式人生 > >16. Spring Boot使用Druid(程式設計注入)【從零開始學Spring Boot】

16. Spring Boot使用Druid(程式設計注入)【從零開始學Spring Boot】

【視訊&交流平臺】

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

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

https://gitee.com/happyangellxq520/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;

importorg.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

       publicServletRegistrationBean DruidStatViewServle2(){

              //org.springframework.boot.context.embedded.ServletRegistrationBean提供類的進行註冊.

              ServletRegistrationBeanservletRegistrationBean = new ServletRegistrationBean(newStatViewServlet(),"/druid2/*");

              //新增初始化引數:initParams

              //白名單:

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

              //IP黑名單 (存在共同時,deny優先於allow): 如果滿足deny的話提示:Sorry, you arenot permitted to view this page.

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

              //登入檢視資訊的賬號密碼.

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

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

              //是否能夠重置資料.

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

              returnservletRegistrationBean;

       }

       /**

        *註冊一個:filterRegistrationBean

        * @return

        */

       @Bean

       publicFilterRegistrationBean druidStatFilter2(){

              FilterRegistrationBeanfilterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

              //新增過濾規則.

              filterRegistrationBean.addUrlPatterns("/*");

              //新增不需要忽略的格式資訊.

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

              returnfilterRegistrationBean;

       }

       /**

        *註冊dataSouce,這裡只是一個簡單的例子,只注入了部分引數,其它自行注入。

        * @param driver

        * @param url

        * @param username

        * @param password

        * @param maxActive

        * @return

        */

       @Bean

    public DataSourcedruidDataSource(@Value("${spring.datasource.driverClassName}") Stringdriver,

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

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

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

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

                                                              ) {

        DruidDataSourcedruidDataSource = 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();

        }

        returndruidDataSource;

    }

}

這裡的區別在於加入一個方法:druidDataSource進行資料來源的注入(當然這麼一比較當然選擇上一章節在application.properties配置的方式是比較好的,如果有特殊需求的話,也可以在這裡進行注入)

如果同時進行了程式設計式的注入和配置的注入,配置的就無效了。

Spring Boot 系列視訊】

視訊&交流平臺:

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

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匹配規則

歷史章節

第一章 快速開始

1、Spring Boot之Hello World

2、Spring Boot之Hello World訪問404

第二章 Spring Boot之JSON

1、spring boot返回json資料

2、Spring Boot完美使用FastJson解析JSON資料

第三章 Spring Boot熱部署

1、Spring Boot熱部署(springloader)

2、springboot + devtools(熱部署)

第四章 Spring Boot資料庫

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介紹

4、Spring Boot JdbcTemplate

5、Spring Boot整合MyBatis

第五章 web開發

1、全域性異常捕捉

2、配置server資訊

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot新增JSP支援

第六章 定時任務

1、Spring Boot定時任務

2、Spring Boot 定時任務升級篇(動態修改cron引數)

3、Spring Boot 定時任務升級篇(動態新增修改刪除定時任務)

4、Spring Boot 定時任務升級篇(叢集/分散式下的定時任務說明)

5、Spring Boot Quartz介紹

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 整合Quartz普通使用

8、Spring Boot 整合Quartz升級版

9、Spring Boot 整合Quartz二次升級版

10、Spring Boot 整合Quartz-Job如何自動注入Spring容器託管的物件

第七章 Spring Boot MyBatis升級篇

1、Spring Boot MyBatis升級篇-註解

2、Spring Boot MyBatis升級篇-註解-自增ID

3、Spring Boot MyBatis升級篇-註解-增刪改查

4、Spring Boot MyBatis升級篇-註解-分頁查詢

5、Spring Boot MyBatis升級篇-註解-分頁PageHelper不生效

6、Spring Boot MyBatis升級篇-註解- mybatic insert異常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升級篇-註解- #和$符號特別篇

8、Spring Boot MyBatis升級篇-註解-@Result

9、Spring Boot MyBatis升級篇-註解-動態SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升級篇-註解-動態SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升級篇-註解-動態SQL-引數問題

12、Spring Boot MyBatis升級篇-註解-特別篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升級篇-XML

14、Spring Boot MyBatis升級篇-XML-自增ID

15、Spring Boot MyBatis升級篇-XML-增刪改查

16、Spring Boot MyBatis升級篇-XML-分頁查詢

17、Spring Boot MyBatis升級篇-XML-分頁PageHelper不生效

18、Spring Boot MyBatis升級篇-XML-動態SQL(if test)

19、Spring Boot MyBatis升級篇-XML-註解-初嘗試

20、Spring Boot MyBatis升級篇- pagehelper替換為pagehelper-spring-boot-starter

第八章 Spring Boot 知識點1

1、Spring Boot 攔截器HandlerInterceptor

2、Spring Boot啟動載入資料CommandLineRunner

3、Spring Boot環境變數讀取和屬性物件的繫結

4、Spring Boot使用自定義的properties

5、Spring Boot使用自定義的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 監控和管理生產環境

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh檔案))

第十一章 Spring Boot 日誌

1、spring boot日誌—理論

2、Spring Boot日誌-logback

3、Spring Boot日誌-log4j2