`
flashsnow
  • 浏览: 29845 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

Springboot Druid 相关配置以及一些问题的处理

阅读更多

Druid 是阿里提供的比较专业的可视化web、DB监控工具,基于标准SpringWeb的集成方式,Druid的官网手册写的非常明晰了,本人在使用SpringBoot进行集成的时候,遇到了一些问题,并且扎到了解决方案。

1. 搭建SpringBoot的基础框架,本人这里配置了Mysql数据库、Web(这个不是本文重点)

2. 引入Druid

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.29</version>
		</dependency>

 

3. 增加Servlet

@WebServlet(urlPatterns = "/druid/*",
			initParams = {
					@WebInitParam(name = "loginUsername", value = "druid"),
					@WebInitParam(name = "loginPassword", value = "druid"),
					@WebInitParam(name = "resetEnable", value = "false"),
				}
		)
public class DruidStatView extends StatViewServlet {
	private static final long serialVersionUID = 1L;
}

   这里指定了用户名和密码都是druid

 

4. 启动类增加对Servlet的扫描,@ServletComponentScan,默认情况下该注释扫描启动类所在包及其所有子包,可通过basePackages、basePackageClasses 重新指定

 

5. 增加 Filter

@WebFilter(urlPatterns = "/*",
			initParams = {
					@WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"),
					
			}
		)
public class DruidWebStatFilter extends WebStatFilter{

}

 

6. 配置DB,这里使用了yml格式的配置文件

spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.name}
        username: ${mysql.username}
        password: ${mysql.password}
        filters: stat,wall,log4j

注意:type: com.alibaba.druid.pool.DruidDataSource,可以不指定driverClassName,Druid会自动匹配

 

7.  到此,Druid 的基本配置已经好了,启动应用,访问http://localhost:8080/druid 输入用户名和密码之后,可以看到相关界面了。但是这里有几个问题:

    1) 【SQL监控】没有起作用,表现是 【数据源】标签下的【* filter类名】没有信息

    2) 【Spring监控】没有内容,(这个是没有配置)

 

8. 【Spring监控】的配置

	@Bean
	public DruidStatInterceptor druidStatInterceptor() {
		return new DruidStatInterceptor();
	}

	@Bean
	public JdkRegexpMethodPointcut druidStatPointcut() {
		JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
		String patterns = "com.lsc.learn.spring.druid.*";
		druidStatPointcut.setPatterns(patterns);
		return druidStatPointcut;
	}

	@Bean
	public Advisor druidStatAdvisor() {
		return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor());
	}

 

9. 【SQL监控】的配置(本文重点)

	@Bean
	@ConfigurationProperties(prefix = "spring.datasource")
	public DataSource druidDataSource() {
		return new DruidDataSource();
	}

即需要明确写明DataSource,具体什么原因就不清楚了,还望了解的大神讲解一下。 

 

10. 这里只讲述了如何在springboot中集成druid,其他druid的内容请参照Druid的官方手册

分享到:
评论

相关推荐

    springboot druid maven多数据源(mysql+SqlServer)

    本项目将介绍如何在SpringBoot项目中结合Maven构建一个支持多数据源的系统,特别是如何处理MySQL和SQLServer两种不同的数据库类型,并使用Druid作为数据源连接池。 首先,我们需要理解“多数据源”这一概念。多数据...

    SpringBoot(七)SpringBoot整合Druid实现数据库密码加密.pdf

    在`pom.xml`中添加Spring Boot和Druid的相关依赖。例如: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-web &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;druid-spring-...

    springboot druid 多数据源demo

    总的来说,本项目提供了一个实战示例,展示了如何在Spring Boot应用中使用Druid配置多数据源,以及如何进行数据源路由和事务管理。这对于开发者理解和掌握Spring Boot与数据库的交互具有很高的参考价值。

    SpringBoot+druid+多数据源示例

    通过以上步骤,我们就完成了SpringBoot+Druid+多数据源的配置。在实际项目中,还可以进一步完善数据源切换策略,例如通过AOP切面来自动切换数据源,或者使用更复杂的路由规则,以满足复杂业务场景的需求。 这个`...

    springboot+mybatis3+druid+postgresql

    在本项目中,"springboot+mybatis3+druid+postgresql"的组合是一个常见的高效、轻量级的Java Web开发架构。Spring Boot简化了Spring应用程序的创建和配置,MyBatis作为持久层框架提供了灵活的SQL映射,Druid是数据库...

    springBoot+druid+mybatis+redis+logback

    用户需要按照文件的指示,配置相关组件,例如设置SpringBoot的启动类、配置Druid的数据源、MyBatis的Mapper文件和XML配置、Redis的连接信息以及Logback的日志配置,然后就可以运行和测试这个平台的各个功能了。

    Springboot Druid多数据源 多线程

    总结起来,这个项目展示了如何利用Spring Boot和Druid实现多数据源切换,以及如何在Spring Boot中配置和使用多线程来提升数据库操作的并发性能。对于初学者,这是一个很好的学习资源,可以深入理解Spring Boot的自动...

    springboot整合druid、mybatis连接gbase8s.doc

    总的来说,这个教程涵盖了Spring Boot项目搭建、Gradle配置、依赖管理、Spring Boot配置、MyBatis和Druid的使用,以及Gbase8s数据库的连接。通过这个过程,开发者可以学习到如何在实际项目中整合这些技术,实现高效...

    springboot+mybatis+druid+redis实现数据库读写分离和缓存

    - 配置SpringBoot的多数据源,包括主库(写库)和从库(读库),通过Druid的数据源切换功能实现读写分离。 - 配置MyBatis的Mapper文件,根据业务需求定义不同的SQL语句,同时在MyBatis的配置中指定读库和写库的数据...

    SpringBoot+MyBatis+Druid连接池+JDBC官方驱动+ClickHouse

    通过这种方式,我们可以构建一个高性能的数据处理系统,利用SpringBoot的便利性、MyBatis的灵活性和Druid的稳定性,以及ClickHouse的高速查询能力,实现对大数据的高效管理和分析。在实际项目中,还可以根据需求添加...

    SpringBoot + mybatis-plus + druid 实现mySql与Orcl双数据源

    总结起来,通过SpringBoot、Mybatis-Plus和Druid,我们可以方便地实现双数据源配置,使得应用能同时处理MySQL和Oracle数据库的数据。在实际开发中,要根据业务场景灵活切换数据源,确保数据操作的正确性和效率。同时...

    Springboot+Mybatis+Druid多数据源配置

    本教程将围绕"Springboot+Mybatis+Druid多数据源配置"这一主题,详细介绍如何实现这一功能。 首先,Spring Boot简化了Spring应用的初始化和配置。在多数据源场景下,我们可以通过Spring Boot的@...

    Spring Boot + Druid + Mybatis + Atomikos 配置多数据源 并支持分布式事务

    在构建企业级应用程序时,处理多个数据库和确保跨数据库操作的事务一致性是常见的需求...这个示例项目(springboot-druid-mybatis-multi)应该包含了相关的配置文件和示例代码,可以帮助开发者快速理解和实践这一方案。

    springboot2 配置多个DispatcherServlet 处理.do .htm请求,Controller分离,集成druid和mybatis

    Springboot 2.4.4 网上搜到的配置多个DispatcherServlet 都有坑,自己避坑写的一个demo,处理.do .htm请求,Controller分离不会出现一个Controller可以处理.do也处理.htm可自己扩展.action .json等,适合分离前台...

    Springboot整合Druid与Mybatis的多数据源切换

    3. **配置Druid数据源**:使用`DruidDataSource`类作为数据源,并在配置类中通过`@Bean`注解声明。别忘了为每个数据源设置不同的名字,如`primaryDataSource`和`secondaryDataSource`。 4. **创建数据源路由`...

    SpringBoot+MyBatis+Druid

    然后,配置`application.properties`或`application.yml`文件,设置数据源为Druid,并配置相关的Druid连接池属性,如最大连接数、最小连接数、超时时间等。接着,配置MyBatis的主配置文件,指定Mapper扫描路径。最后...

    SpringBoot整合Druid、Websocket

    3. 创建Druid配置类:自定义一个配置类,配置Druid的数据源,并启用Druid的web监控。 4. 配置 DruidStatFilter 和 DruidStatViewServlet:分别用于收集监控数据和展示监控页面。 接下来是WebSocket的集成。...

    springboot+JdbcTemplate+druid

    然后,在 `application.properties` 文件中配置 Druid 数据源,包括数据库连接信息、初始化大小、最大连接数等: ```properties spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource...

    maven 整合 springboot mybatis druid

    2. 配置`application.yml`或`application.properties`:设置SpringBoot的基本属性,如服务器端口、日志级别,以及数据库连接池的相关配置(Druid的配置项)。 3. 创建MyBatis的Mapper接口和XML文件:定义数据访问层...

    mybatis-druid-springboot

    标题 "mybatis-druid-springboot" 涉及到的是一个基于Spring Boot的应用,它整合了MyBatis和Druid数据源。这个项目的主要目的是简化数据库操作和管理,通过注解配置使得开发者能快速地集成这三个关键组件,实现...

Global site tag (gtag.js) - Google Analytics