`

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

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

 

在上一节使用是配置文件的方式进行使用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

 

 

 

 视频&交流平台

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

网易云课堂视频最新更新

第十一章 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/

1
10
分享到:
评论
2 楼 qq1488888 2016-08-16  
WuNan2 写道
public DataSource druidDataSource 这个方法起误导作用,如此生产的连接池仅注入了maxActive属性,其它属性通过参数挨个注入吗?这不是个懒惰程序猿应该干的。

正确的方式是保留前两个监测的@Bean,DataSource在application.properties中加:spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
然后:
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=50
……
等等这些参数配了就生效。


1.4版本里面默认只支持4种连接池的配置方式,如果要用第三方就是要这样子的注入了
1 楼 WuNan2 2016-04-22  
public DataSource druidDataSource 这个方法起误导作用,如此生产的连接池仅注入了maxActive属性,其它属性通过参数挨个注入吗?这不是个懒惰程序猿应该干的。

正确的方式是保留前两个监测的@Bean,DataSource在application.properties中加:spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
然后:
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=50
……
等等这些参数配了就生效。

相关推荐

    15. Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何在Spring Boot项目中集成并配置Druid数据源以及其监控功能。Druid是一个强大的数据库连接池,它提供了丰富的监控、扩展性以及性能优化特性。Spring Boot简化...

    从零开始学Spring Boot

    从零开始学Spring Boot,没有...16)Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】 http://412887952-qq-com.iteye.com/blogs/2292376 (17)Spring Boot普通类调用bean【从零开始学Spring Boot】: ...

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建.docx

    在本文中,我们将详细介绍如何从零开始搭建一个基于Spring Boot的开发环境,其中包括Spring Boot、Mybatis和Swagger2的集成。首先,让我们了解为何选择Spring Boot。 **为什么使用Spring Boot** Spring Boot是...

    spring-boot-study-master.zip

    master.zip"这一压缩包,深入探讨Spring Boot的核心概念及实战应用,包括Druid、Ehcache、JWT、Mybatis、Generator、Quartz、Scheduling、Shiro以及Upload等模块,旨在帮助初学者从零开始全面掌握Spring Boot。...

    Tmall-demo-master.zip

    在数字化时代,电商平台已经成为商业活动的重要组成部分,而构建这样的平台并不需要从零开始。本文将详细介绍一个基于Spring Boot的迷你天猫商城项目——"Tmall-demo-master",它作为一个快速部署的毕设模板,提供了...

    连接池的配置给没有接触过的手把手教

    本篇文章将带你一步步了解连接池的配置,并教你如何从零开始设置一个连接池。 连接池的基本原理是预先创建并维护一定数量的数据库连接,当应用需要使用数据库时,从连接池中获取一个已建立的连接,使用完毕后再归还...

    若依环境使用手册v1.0.21

    总之,《若依环境使用手册v1.0.21》详尽地指导了开发者如何从零开始搭建若依系统的开发环境,涵盖了从安装 Maven 到项目导入、配置修改、启动验证以及部署的全过程。遵循这些步骤,开发者可以迅速地建立一个能够运行...

    使用SSM框架基于SpringBoot的个人博客+源代码+文档说明

    通过从零开始搭建整个项目,了解整个开发流程,如何设计,如何实现,一步步发现,一步步解决。系统的运用SpringBoot与它集成的各种框架,对于学习了SpringBoot却没有实际运用的人是一个很好的练手项目。 主要技术与...

    开源字节环境使用手册1

    总的来说,这个手册详细介绍了如何从零开始搭建开源字节低代码开发平台的开发环境,包括Maven的配置、项目的导入、环境变量的设置、数据库的连接、系统的启动和验证,以及最终的部署策略。这些步骤对于开发者理解...

Global site tag (gtag.js) - Google Analytics