Springboot 1.5.10 Druidが遭遇したいくつかのピットを統合

1884 ワード

今日、プロジェクトにdruidを統合したいのは、私が使っているspringbootが比較的新しい理由(1.5.10)かもしれませんが、私が使っているプロファイルはymlタイプで、普通のPropertiesプロファイルに比べて、ymlのプロファイルは構造的な木状に並べられていて、読みやすさがいいです.私のIDEAのインテリジェントプロンプトのJDBC構成のデフォルトはtomcat接続プールです.springboot 1.5以降のデフォルトのjdbcがtomcatである可能性があるため、druid構成が有効ではありません.だから仕方なくこのような方法を選んで、自分でDataSourceクラスを書き換える工場の方法を選んで、この言い方が正しいかどうか分からないで、1つの戻り値がDataSourceの方法に@Bean注釈を加えて、SpringのSpringBeanを生成する原理によって、1つのインタフェースの実現クラスあるいは1つのクラスは1つのオブジェクトしかありません.だから私たちは自分でDataSourceを作成する方法を書いてSpringにロードさせるときに私たちが書いたインスタンスを出せばいいのです.@Primary注記は、複数のサブクラスが自動的にアセンブリされる場合に、注記されるインスタンスメソッドの優先度を高めることができ、加算することが望ましい.
#datasource
spring:
    datasource:
        name: dev
        url: jdbc:mysql://127.0.0.1:3306/hm_crm_dev?useUnicode=true&characterEncoding=utf8
        username: root
        password: 123456
        driver-class-name: com.mysql.jdbc.Driver
######################### Druid          #################
        type: com.alibaba.druid.pool.DruidDataSource
        #            ,           
        #      ,  ,  
        initialSize: 5
        minIdle: 5
        maxActive: 20
        #              
        maxWait: 60000
        #              ,           ,     
        timeBetweenEvictionRunsMillis: 60000
        #                 ,     
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        #   PSCache,         PSCache   
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        #          filters,       sql    ,'wall'     ,   filter     
        filters: stat,wall,slf4j
        #   connectProperties     mergeSql  ; SQL  
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
        #     DruidDataSource     
#        useGlobalDataSourceStat: true