欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Druid如何平行替換為Hikari

 更新時(shí)間:2024年05月27日 08:58:19   作者:weixin_45614626  
這篇文章主要介紹了Druid如何平行替換為Hikari問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Druid平行替換為Hikari

由于druid本身的漏洞,具體見我的上一篇文章druid漏洞,決定替換為hikari。

步驟一

將pom文件中引用的druid依賴刪除,我引用的是

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>

步驟二

修改yml文件。

由于我用的是讀寫分離,所以yml文件寫成下邊的形式。

datasource:
    x-wr:
      driver-class-name: com.mysql.jdbc.Driver
      name: mysql
      type: com.zaxxer.hikari.HikariDataSource
      jdbc-url: jdbc:mysql://
      username: x_rw
      password: 11111
      hikari:
        # 最小空閑連接數(shù)量
        minimum-idle: 10
        # 連接池最大連接數(shù),默認(rèn)是10
        maximum-pool-size: 20
        # 空閑連接存活最大時(shí)間,默認(rèn)600000(10分鐘)
        idle-timeout: 5000000
        # 此屬性控制池中連接的最長(zhǎng)生命周期,值0表示無限生命周期,默認(rèn)1800000即30分鐘
        max-lifetime: 540000
        # 數(shù)據(jù)庫連接超時(shí)時(shí)間,默認(rèn)30秒,即30000
        connection-timeout: 60000
        connection-test-query: SELECT 1
        #此屬性控制從池返回的連接的默認(rèn)自動(dòng)提交行為,默認(rèn)值:true
        auto-commit: true
    x-ro:
      driver-class-name: com.mysql.jdbc.Driver
      name: mysql
      type: com.zaxxer.hikari.HikariDataSource
      jdbc-url: jdbc:mysql://
      username: x_ro
      password: 000000
      hikari:
        # 最小空閑連接數(shù)量
        minimum-idle: 10
        # 連接池最大連接數(shù),默認(rèn)是10
        maximum-pool-size: 20
        # 空閑連接存活最大時(shí)間,默認(rèn)600000(10分鐘)
        idle-timeout: 5000000
        # 此屬性控制池中連接的最長(zhǎng)生命周期,值0表示無限生命周期,默認(rèn)1800000即30分鐘
        max-lifetime: 540000
        # 數(shù)據(jù)庫連接超時(shí)時(shí)間,默認(rèn)30秒,即30000
        connection-timeout: 60000
        connection-test-query: SELECT 1
        #此屬性控制從池返回的連接的默認(rèn)自動(dòng)提交行為,默認(rèn)值:true
        auto-commit: true

注意幾個(gè)地方,首先druid的配置文件是driverClassName,這里是driver-class-name,同時(shí)數(shù)據(jù)庫url在druid中是url,不管是不是多個(gè)數(shù)據(jù)源,但是在hikari中,如果是單個(gè)數(shù)據(jù)源則是url,多個(gè)數(shù)據(jù)源則要寫成jdbc-url。

另外就是數(shù)據(jù)庫連接,用戶名和密碼放的位置不太一樣。。

步驟三

由于我是讀寫兩個(gè)賬號(hào),在代碼中是通過注解配置的方式實(shí)現(xiàn)不同數(shù)據(jù)源切換的,所以還需要改一下配置文件。

@Configuration
@MapperScan(basePackages = "com.dao", sqlSessionFactoryRef = DataSourceConfig.SQL_SESSION_FACTORY_NAME)
public class DataSourceConfig {
    public static final String SQL_SESSION_FACTORY_NAME = "xxxFactory";

    @Bean
    @ConfigurationProperties("spring.datasource.x-wr")
    public DataSource dataSourcexMysqlRw() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties("spring.datasource.x-ro")
    public DataSource dataSourcexMysqlRo() {
        return DataSourceBuilder.create().build();
    }


    @Bean
    @Primary
    public AbstractRoutingDataSource dataSource() {
        Map<Object, Object> targetDataSources = new HashMap<>(2);
        targetDataSources.put(DataSourceConstant.mysql_x_rw, dataSourcexMysqlRw());
        targetDataSources.put(DataSourceConstant.mysql_x_ro, dataSourcexMysqlRo());
        return new DynamicDataSource(dataSourcexMysqlRw(), targetDataSources);
    }

    @Bean(name = "transactionManager")
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }

    @Bean(name = DataSourceConfig.SQL_SESSION_FACTORY_NAME)
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        Objects.requireNonNull(sqlSessionFactoryBean.getObject()).getConfiguration().setMapUnderscoreToCamelCase(true);
        return sqlSessionFactoryBean.getObject();
    }
}

前兩個(gè)bean之前是這么寫的

@Bean
    @ConfigurationProperties("spring.datasource.x-wr.druid")
    public DataSource dataSourcexMysqlRw() {
        return DruidDataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties("spring.datasource.x-ro.druid")
    public DataSource dataSourcexMysqlRo() {
        return DruidDataSourceBuilder.create().build();
    }

注意區(qū)別。

這些地方改完之后,你其他的代碼是完全不需要?jiǎng)拥?,可以完美替換,druid的監(jiān)控頁面自然就打不開了。。。就沒有安全漏洞了,性能上其實(shí)hikari比druid也要好不少。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決SpringBoot集成Eureka導(dǎo)致返回結(jié)果由json變?yōu)閤ml的問題

    解決SpringBoot集成Eureka導(dǎo)致返回結(jié)果由json變?yōu)閤ml的問題

    這篇文章主要介紹了解決SpringBoot集成Eureka導(dǎo)致返回結(jié)果由json變?yōu)閤ml的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot實(shí)現(xiàn)MD5加鹽算法的示例代碼

    SpringBoot實(shí)現(xiàn)MD5加鹽算法的示例代碼

    加鹽算法是一種用于增強(qiáng)密碼安全性的技術(shù),本文主要介紹了SpringBoot實(shí)現(xiàn)MD5加鹽算法的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Spring Boot定時(shí)任務(wù)的使用實(shí)例代碼

    Spring Boot定時(shí)任務(wù)的使用實(shí)例代碼

    這篇文章主要介紹了Spring Boot定時(shí)任務(wù)的使用實(shí)例代碼,需要的朋友可以參考下
    2017-04-04
  • java實(shí)現(xiàn)24點(diǎn)游戲

    java實(shí)現(xiàn)24點(diǎn)游戲

    每次取出4張牌,使用加減乘除,第一個(gè)能得出24者為贏,這篇文章主要就為大家詳細(xì)介紹了java實(shí)現(xiàn)24點(diǎn)游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Spring內(nèi)置定時(shí)任務(wù)調(diào)度@Scheduled使用詳解

    Spring內(nèi)置定時(shí)任務(wù)調(diào)度@Scheduled使用詳解

    這篇文章主要介紹了Spring內(nèi)置定時(shí)任務(wù)調(diào)度@Scheduled使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java使用TCP實(shí)現(xiàn)數(shù)據(jù)傳輸實(shí)例詳解

    Java使用TCP實(shí)現(xiàn)數(shù)據(jù)傳輸實(shí)例詳解

    這篇文章主要介紹了Java使用TCP實(shí)現(xiàn)數(shù)據(jù)傳輸實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 詳解SpringBoot Mybatis如何對(duì)接多數(shù)據(jù)源

    詳解SpringBoot Mybatis如何對(duì)接多數(shù)據(jù)源

    這篇文章主要為大家介紹了SpringBoot Mybatis如何對(duì)接多數(shù)據(jù)源實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 在java代碼中獲取JVM參數(shù)的方法

    在java代碼中獲取JVM參數(shù)的方法

    下面小編就為大家?guī)硪黄趈ava代碼中獲取JVM參數(shù)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Hadoop之常用端口號(hào)解讀

    Hadoop之常用端口號(hào)解讀

    這篇文章主要介紹了Hadoop之常用端口號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java案例使用比較排序器comparator實(shí)現(xiàn)成績(jī)排序

    Java案例使用比較排序器comparator實(shí)現(xiàn)成績(jī)排序

    這篇文章主要介紹了Java案例使用比較排序器comparator實(shí)現(xiàn)成績(jī)排序,主要通過案例用TreeSet集合存儲(chǔ)多個(gè)學(xué)生信息,并遍歷該集合,要按照總分從高到低進(jìn)行排序,下文介紹需要的朋友可以參考一下
    2022-04-04

最新評(píng)論