Spring Boot 学习14--使用Druid(编程注入)
2017-04-27 17:40
507 查看
在上一节使用是配置文件的方式进行使用druid,这里在扩散下使用编程式进行使用Druid,在上一节我们新建了一个类:DruidConfiguration我在这个类进行编码:
Java代码
1. package com.kfit.base.servlet;
2.
3. import java.sql.SQLException;
4.
5. import javax.sql.DataSource;
6.
7. import org.springframework.beans.factory.annotation.Value;
8.
9. import org.springframework.boot.context.embedded.FilterRegistrationBean;
10.
11.import org.springframework.boot.context.embedded.ServletRegistrationBean;
12.
13.import org.springframework.context.annotation.Bean;
14.
15.import org.springframework.context.annotation.Configuration;
16.
17.import com.alibaba.druid.pool.DruidDataSource;
18.
19.import com.alibaba.druid.support.http.StatViewServlet;
20.
21.import com.alibaba.druid.support.http.WebStatFilter;
22.
23.
24.
25./**
26.
27. * druid 配置.
28.
29. *
30.
31. * 这样的方式不需要添加注解:@ServletComponentScan
32.
33. * @author Administrator
34.
35. *
36.
37. */
38.
39.@Configuration
40.
41.public class DruidConfiguration {
42.
43.
44.
45. /**
46.
47. * 注册一个StatViewServlet
48.
49. * @return
50.
51. */
52.
53. @Bean
54.
55. public ServletRegistrationBean DruidStatViewServle2(){
56.
57. //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
58.
59. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid2/*");
60.
61.
62.
63. //添加初始化参数:initParams
64.
65.
66.
67. //白名单:
68.
69. servletRegistrationBean.addInitParameter("allow","127.0.0.1");
70.
71. //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.
72.
73. servletRegistrationBean.addInitParameter("deny","192.168.1.73");
74.
75. //登录查看信息的账号密码.
76.
77. servletRegistrationBean.addInitParameter("loginUsername","admin2");
78.
79. servletRegistrationBean.addInitParameter("loginPassword","123456");
80.
81. //是否能够重置数据.
82.
83. servletRegistrationBean.addInitParameter("resetEnable","false");
84.
85. return servletRegistrationBean;
86.
87. }
88.
89.
90.
91. /**
92.
93. * 注册一个:filterRegistrationBean
94.
95. * @return
96.
97. */
98.
99. @Bean
100.
101. public FilterRegistrationBean druidStatFilter2(){
102.
103.
104.
105. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
106.
107.
108.
109. //添加过滤规则.
110.
111. filterRegistrationBean.addUrlPatterns("/*");
112.
113.
114.
115. //添加不需要忽略的格式信息.
116.
117. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*");
118.
119. return filterRegistrationBean;
120.
121. }
122.
123.
124.
125. /**
126.
127. * 注册dataSouce,这里作为一个例子,只注入了部分参数信息,其它的参数自行扩散思维。
128.
129. * @param driver
130.
131. * @param url
132.
133. * @param username
134.
135. * @param password
136.
137. * @param maxActive
138.
139. * @return
140.
141. */
142.
143. @Bean
144.
145. public DataSource druidDataSource(@Value("${spring.datasource.driverClassName}") String driver,
146.
147. @Value("${spring.datasource.url}") String url,
148.
149. @Value("${spring.datasource.username}") String username,
150.
151. @Value("${spring.datasource.password}") String password,
152.
153. @Value("${spring.datasource.maxActive}") int maxActive
154.
155. ) {
156.
157. DruidDataSource druidDataSource = new DruidDataSource();
158.
159. druidDataSource.setDriverClassName(driver);
160.
161. druidDataSource.setUrl(url);
162.
163. druidDataSource.setUsername(username);
164.
165. druidDataSource.setPassword(password);
166.
167. druidDataSource.setMaxActive(maxActive);
168.
169.
170.
171. System.out.println("DruidConfiguration.druidDataSource(),url="+url+",username="+username+",password="+password);
172.
173. try {
174.
175. druidDataSource.setFilters("stat, wall");
176.
177. } catch (SQLException e) {
178.
179. e.printStackTrace();
180.
181. }
182.
183. return druidDataSource;
184.
185. }
186.
187.
188.
189.}
190.
191.
这里的区别在于加入一个方法:druidDataSource进行数据源的注入(当然这么一选择上一章节在application.properties配置的方式是比较好,如果有特殊需求的话,也可以在这里进行注入)。
如果同时进行了编程式的注入和配置的注入,配置的就无效了。
-----------------------------------------------------------------
Java代码
1. package com.kfit.base.servlet;
2.
3. import java.sql.SQLException;
4.
5. import javax.sql.DataSource;
6.
7. import org.springframework.beans.factory.annotation.Value;
8.
9. import org.springframework.boot.context.embedded.FilterRegistrationBean;
10.
11.import org.springframework.boot.context.embedded.ServletRegistrationBean;
12.
13.import org.springframework.context.annotation.Bean;
14.
15.import org.springframework.context.annotation.Configuration;
16.
17.import com.alibaba.druid.pool.DruidDataSource;
18.
19.import com.alibaba.druid.support.http.StatViewServlet;
20.
21.import com.alibaba.druid.support.http.WebStatFilter;
22.
23.
24.
25./**
26.
27. * druid 配置.
28.
29. *
30.
31. * 这样的方式不需要添加注解:@ServletComponentScan
32.
33. * @author Administrator
34.
35. *
36.
37. */
38.
39.@Configuration
40.
41.public class DruidConfiguration {
42.
43.
44.
45. /**
46.
47. * 注册一个StatViewServlet
48.
49. * @return
50.
51. */
52.
53. @Bean
54.
55. public ServletRegistrationBean DruidStatViewServle2(){
56.
57. //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
58.
59. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid2/*");
60.
61.
62.
63. //添加初始化参数:initParams
64.
65.
66.
67. //白名单:
68.
69. servletRegistrationBean.addInitParameter("allow","127.0.0.1");
70.
71. //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.
72.
73. servletRegistrationBean.addInitParameter("deny","192.168.1.73");
74.
75. //登录查看信息的账号密码.
76.
77. servletRegistrationBean.addInitParameter("loginUsername","admin2");
78.
79. servletRegistrationBean.addInitParameter("loginPassword","123456");
80.
81. //是否能够重置数据.
82.
83. servletRegistrationBean.addInitParameter("resetEnable","false");
84.
85. return servletRegistrationBean;
86.
87. }
88.
89.
90.
91. /**
92.
93. * 注册一个:filterRegistrationBean
94.
95. * @return
96.
97. */
98.
99. @Bean
100.
101. public FilterRegistrationBean druidStatFilter2(){
102.
103.
104.
105. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
106.
107.
108.
109. //添加过滤规则.
110.
111. filterRegistrationBean.addUrlPatterns("/*");
112.
113.
114.
115. //添加不需要忽略的格式信息.
116.
117. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*");
118.
119. return filterRegistrationBean;
120.
121. }
122.
123.
124.
125. /**
126.
127. * 注册dataSouce,这里作为一个例子,只注入了部分参数信息,其它的参数自行扩散思维。
128.
129. * @param driver
130.
131. * @param url
132.
133. * @param username
134.
135. * @param password
136.
137. * @param maxActive
138.
139. * @return
140.
141. */
142.
143. @Bean
144.
145. public DataSource druidDataSource(@Value("${spring.datasource.driverClassName}") String driver,
146.
147. @Value("${spring.datasource.url}") String url,
148.
149. @Value("${spring.datasource.username}") String username,
150.
151. @Value("${spring.datasource.password}") String password,
152.
153. @Value("${spring.datasource.maxActive}") int maxActive
154.
155. ) {
156.
157. DruidDataSource druidDataSource = new DruidDataSource();
158.
159. druidDataSource.setDriverClassName(driver);
160.
161. druidDataSource.setUrl(url);
162.
163. druidDataSource.setUsername(username);
164.
165. druidDataSource.setPassword(password);
166.
167. druidDataSource.setMaxActive(maxActive);
168.
169.
170.
171. System.out.println("DruidConfiguration.druidDataSource(),url="+url+",username="+username+",password="+password);
172.
173. try {
174.
175. druidDataSource.setFilters("stat, wall");
176.
177. } catch (SQLException e) {
178.
179. e.printStackTrace();
180.
181. }
182.
183. return druidDataSource;
184.
185. }
186.
187.
188.
189.}
190.
191.
这里的区别在于加入一个方法:druidDataSource进行数据源的注入(当然这么一选择上一章节在application.properties配置的方式是比较好,如果有特殊需求的话,也可以在这里进行注入)。
如果同时进行了编程式的注入和配置的注入,配置的就无效了。
-----------------------------------------------------------------
相关文章推荐
- (16)Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】
- 16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】
- 16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】
- (16)Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】
- 16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】
- spring boot 学习(四)Druid连接池的使用配置
- spring boot 学习(四)Druid连接池的使用配置
- 从0开始学习SpringCould(5)--SpringBoot 集成Mybatis使用Druid数据源
- Spring Boot 学习13--使用Druid和监控配置
- SpringBoot学习:整合MyBatis,使用Druid连接池
- Spring Boot 官方文档学习(一)入门及使用
- ASP.NET_MVC使用Spring.Net.MVC依赖注入学习笔记
- 15、Spring Boot使用Druid和监控配置【从零开始学Spring Boot】
- Spring Boot 官方文档学习(一)入门及使用
- Spring Boot使用Druid和监控配置
- springboot 学习笔记【3】Spring Boot中使用Spring-data-jpa
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- Spring Boot 使用 Druid 和监控配置
- (14)Spring Boot定时任务的使用【从零开始学Spring Boot】
- Spring Boot学习笔记-SQL数据库使用