1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > springboot2.5.5配置druid数据源1.2.8与jdbc

springboot2.5.5配置druid数据源1.2.8与jdbc

时间:2022-04-30 11:13:28

相关推荐

springboot2.5.5配置druid数据源1.2.8与jdbc

【README】

本文记录了 springboot配置 druid数据源的步骤;

【1】新建springboot项目并配置druid

步骤1,新建springbt项目

步骤2,选择spring web,jdbc,mysql驱动依赖;

步骤3,添加 druid数据源依赖, 生成的pom.xml 如下:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.cmc</groupId><artifactId>springbt-06-data-jdbc2</artifactId><version>0.0.1-SNAPSHOT</version><name>springbt-06-data-jdbc2</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- 引入druid数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><!-- /artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

注意,必须添加 log4j 依赖,因为 druid用到了它,不然会报

Failed to bind properties under 'spring.datasource' to javax.sql.DataSource

步骤4,添加druid数据源配置, 启用 druid数据源

application.yml

# 配置springboot数据源spring:datasource:username: rootpassword: rooturl: jdbc:mysql://192.168.163.204:3306/jdbc01driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource # 启用druid数据源# 数据源其他配置initialSize: 6minIdle: 6maxActive: 26maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: true# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: trueconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

步骤5,添加测试用例

import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import javax.sql.DataSource;import java.sql.Connection;import java.sql.SQLException;@SpringBootTestclass Springbt06DataJdbc2ApplicationTests {@AutowiredDataSource dataSource;@Testvoid contextLoads() throws SQLException {System.out.println("数据源=" + dataSource.getClass());Connection conn = dataSource.getConnection();System.out.println("我的测试连接=" + conn);conn.close();}}

打印结果:

数据源=class com.alibaba.druid.pool.DruidDataSource

-10-17 08:18:50.867 INFO 7488 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited

我的测试连接=com.mysql.cj.jdbc.ConnectionImpl@54e02f6a

【2】使用druid并配置druid监控页面

步骤1,添加web访问配置

application.properties

# 服务器配置server.port=8082server.servlet.context-path=/springbt-data2

步骤2,添加controller访问路径,查询数据库表

@Controllerpublic class HelloController {@AutowiredJdbcTemplate jdbcTemplate;@ResponseBody@GetMapping("/query")public Map<String, Object> map() {List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from department");return list.get(0);}}

步骤3,添加druid数据源

// 导入druid数据源@Configurationpublic class DruidConfig {@ConfigurationProperties(prefix = "spring.datasource")@Beanpublic DataSource druid() {return new DruidDataSource();}// 配置druid监控// 1 配置一个管理后台的servlet@Beanpublic ServletRegistrationBean statViewServlet() {ServletRegistrationBean bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");// 配置相关参数Map<String, String> params = new HashMap<>();params.put("loginUsername", "admin");params.put("loginPassword", "admin");params.put("allow", "localhost"); // 默认允许所有访问params.put("deny", "192.168.163.204"); // 默认允许所有访问bean.setInitParameters(params);return bean;}// 2 配置一个监控的filter@Beanpublic FilterRegistrationBean webStatFilter() {FilterRegistrationBean bean = new FilterRegistrationBean<>();bean.setFilter(new WebStatFilter());// 配置相关参数Map<String, String> params = new HashMap<>();params.put("exclusions", "*.js,*.css,/druid/*");bean.setInitParameters(params);bean.setUrlPatterns(Arrays.asList("/*"));return bean;}}

步骤4,先执行query 请求;

http://localhost:8082/springbt-data2/query

步骤5,查看druid sql监控页面

http://localhost:8082/springbt-data2/druid/login.html

步骤6,查看sql监控;

补充: springboot配置druid及测试案例的目录结构

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。