SpringBoot-Druid

这篇具有很好参考价值的文章主要介绍了SpringBoot-Druid。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.什么是Druid

2.主要优点和原因

3.误区

4.Part代码

0.pom

1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource

2.Druid用Jasypt加密任意内容

@EnableEncryptableProperties开启加密注解

3.Druid监控平台


1.什么是Druid

Druid 是一个开源的数据库连接池和监控库,主要用于连接和管理数据库连接。它的设计目标是提供高性能、高可用性、高度可管理性的数据库连接池,适用于各种Java应用程序,特别是那些需要频繁与数据库交互的应用,如Web应用、大数据处理等。

2.主要优点和原因

  1. 连接池管理 Druid 提供了强大的连接池管理功能,可以有效地管理数据库连接的创建、销毁、复用和监控,以减少数据库连接的开销和资源浪费。

  2. 性能优化: Druid 在连接池和 SQL 执行层面进行了性能优化,包括支持预编译语句、自动识别并关闭空闲连接、连接泄漏检测等功能,以提高应用程序的性能。

  3. 监控和统计 Druid 提供了详细的监控和统计信息,包括连接池的状态、SQL执行性能、慢查询日志等,帮助开发人员和运维人员更好地理解应用的数据库访问情况,及时发现性能问题。

  4. 安全性: Druid 支持 IP 白名单、SQL 防火墙等安全功能,可以保护数据库免受恶意攻击。

  5. 适用性广泛: Druid 不仅支持 JDBC,还支持类似Spring JDBC、MyBatis、Hibernate等框架,因此适用于各种Java应用程序。

  6. 开源和活跃的社区: Druid 是开源项目,拥有活跃的社区支持,可以获得及时的更新和 bug 修复。

  7. 可扩展性: Druid 具有可扩展性,可以根据具体需求进行定制和扩展,以满足特定应用场景的要求。

总之,使用 Druid 数据库连接池的主要目的是提高数据库访问的性能、可管理性和安全性,同时提供了丰富的监控和统计信息,有助于更好地管理和维护数据库连接。当你的应用需要频繁与数据库交互时,使用 Druid 可能会显著提高应用程序的性能和可维护性。

3.误区

Druid本身不提供SQL优化功能,SQL优化通常需要依赖于数据库引擎或其他专门的SQL优化工具。可以在使用Druid连接池的应用中采取一些措施来优化SQL查询的性能;

4.Part代码

JDBC默认的DataSource实现是BasicDataSourceBasicDataSource是一个开源的、基本的DataSource实现,用于创建和管理数据库连接池。

因为使用连接池可以显著提高数据库连接的性能和资源利用率,减少连接的创建和销毁开销。

0.pom

<!--jasypt坐标-->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

<!--druid坐标-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.8</version>
</dependency>

1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource

System.out.println(dataSource.getClass());
System.out.println(dataSource.getConnection());

class com.alibaba.druid.pool.DruidDataSource
com.mysql.cj.jdbc.ConnectionImpl@32d5279

 可以看到数据源已经成功切换

2.Druid用Jasypt加密任意内容

生成密码的密文代码

@Test
void show1(){
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();
        // 加密的算法,这个算法是默认的
        config.setAlgorithm("PBEWithMD5AndDES");
        // 加密的密钥,随便自己填写,很重要千万不要告诉别人
        config.setPassword("apesource");
        standardPBEStringEncryptor.setConfig(config);
        //自己的密码
        String plainText = "xxx";
        String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
        System.out.println(encryptedText);
 }

 使密文生效我们使用了ENC函数,并将混淆字符串的配置放到了yml当中

jasypt:
  encryptor:
    password: apesource

yml当中的格式

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myUsername
spring.datasource.password=ENC(密文)

@EnableEncryptableProperties开启加密注解

3.Druid监控平台

yml当中

filters: stat,wall

在Config配置类当中

  2.配置servlet
    @Bean
    public ServletRegistrationBean registrationBean(){
        //1.创建servlet注册类
        ServletRegistrationBean<StatViewServlet>  servletRegistrationBean =  new ServletRegistrationBean<StatViewServlet>();
        //2.创建制作页面的servlet
        StatViewServlet statViewServlet = new StatViewServlet();
        //3.绑定servlet
        servletRegistrationBean.setServlet(statViewServlet);
        servletRegistrationBean.setUrlMappings(Arrays.asList("/druid/*"));
        //4.参数绑定
        Map<String,String> maps = new HashMap<String,String>();
        maps.put(StatViewServlet.PARAM_NAME_USERNAME,"admin");
        maps.put(StatViewServlet.PARAM_NAME_PASSWORD,"123");
        maps.put(StatViewServlet.PARAM_NAME_ALLOW,"");//白名单
        maps.put(StatViewServlet.PARAM_NAME_DENY,"192.168.0.12");//黑名单
        servletRegistrationBean.setInitParameters(maps);
        return servletRegistrationBean;
    }

    //3.配置filter
    @Bean
    public FilterRegistrationBean filterRegistrationBean(){

        FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<WebStatFilter>();
        bean.setFilter(new WebStatFilter());
        //所有请求进行监控处理
        bean.setUrlPatterns(Arrays.asList("/*"));

        Map<String, String> initPrams = new HashMap<>();
        //添加不需要忽略的格式信息
        initPrams.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*");
        bean.setInitParameters(initPrams);

        return bean;
    }

拦截器和过滤器用到了servlet,所以要注册servlet

拦截器主要拦截以/druid/开头的

最后使用localhost://8080/就可以访问监控平台。文章来源地址https://www.toymoban.com/news/detail-730115.html

到了这里,关于SpringBoot-Druid的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot-Druid

    目录 1.什么是Druid 2.主要优点和原因 3.误区 4.Part代码 0.pom 1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource 2.Druid用Jasypt加密任意内容 @EnableEncryptableProperties开启加密注解 3.Druid监控平台 Druid 是一个开源的数据库连接池和监控库,主要用于连接和管理数据库连接。它的设计目标

    2024年02月07日
    浏览(34)
  • Springboot+druid

    1.Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。 2.配置maven 3.druid配置 4.打开Druid的监控统计功能 Druid的监控统计功能是通过filter-chain扩展实现,如果你要打开监控统计功能,配置StatFilter http://localhost:8007/druid/login.html   5.配置过滤器 6.jdbc操作 7.

    2024年02月09日
    浏览(33)
  • Springboot集成 Druid

    Druid是一个开源的数据库连接池和SQL查询优化工具,用于提高应用程序对数据库的性能和可扩展性。主要提供的功能:数据库连接池、数据库连接池监控、SQL查询优化、数据源管理、防御SQL注入、统计和监控。 注意:SpringBoot2.0默认是用com.zaxxer.hikari.HikariDataSource作为数据源。

    2024年02月02日
    浏览(39)
  • SpringBoot项目集成Druid

    本文将介绍Druid的相关内容以及项目如何集成Druid,请多多指教。 Druid是阿里开源的一个数据库连接池的解决方案。它本身还自带一个监控平台,可以查看时时产生的sql、uri等监控数据,可以排查慢sql、慢请求,方便对sql和项目代码进行调优。 1.1数据库连接池 数据库连接池是

    2024年02月10日
    浏览(50)
  • Spring Boot 使用 Druid 连接池详解

    Alibaba Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件,被大量业务和技术产品使用或集成,经历过严苛的线上业务场景考验,是值得信赖的技术产品。Druid Spring Boot Starter 用于帮助你在 Spring Boot 项目中轻松集成 Druid 数据库连接池和监控。 https://github.com/alibaba/

    2023年04月08日
    浏览(50)
  • Springboot集成Druid实现监控功能

    Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等等等,秒杀一切。Druid可以很好的监控DB池连接和SQL的执行情况,天生就是针对监控而生的DB连接池。 官方的参考 http

    2024年04月12日
    浏览(34)
  • springboot引入druid解析sql

    一、前言 在开发中,有时我们可能会需要获取SQL中的表名,那么因为不同的数据源类型SQL会存在部分差异,那么我们就可以使用alibaba 的druid包实现不同的数据源类型的sql解析。 二、引入相关maven依赖 三、通过工具类SqlUtils实现对SQL的解析。 三、测试结果 运行结果如下: 大

    2024年02月12日
    浏览(36)
  • Spring Boot 3 集成 Druid 连接池详解

    在现代的Java应用中,使用一个高效可靠的数据源是至关重要的。Druid连接池作为一款强大的数据库连接池,提供了丰富的监控和管理功能,成为很多Java项目的首选。本文将详细介绍如何在Spring Boot 3项目中配置数据源,集成Druid连接池,以实现更高效的数据库连接管理。 Spri

    2024年02月21日
    浏览(48)
  • Spring Boot3整合Druid(监控功能)

    目录 1.前置条件 2.导依赖 错误依赖: 正确依赖: 3.配置 已经初始化好一个spring boot项目且版本为3X,项目可正常启动。 作者版本为3.2.2 初始化教程: 新版idea创建spring boot项目-CSDN博客 https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501 这个依赖对于spring boot 3的支

    2024年01月22日
    浏览(61)
  • Springboot+Druid配置多数据源

    Spring的多数据源支持—AbstractRoutingDataSource,AbstractRoutingDataSource定义了抽象的determineCurrentLookupKey方法,子类实现此方法,来确定要使用的数据源 Druid 实现多数据源支持,核心是Overwrite AbstractRoutingDataSource 的 determineCurrentLookupKey 方法 以springboot框架为基础使用aop注解的方式依赖

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包