【2.0】SpringBoot 2 Druidデータソースおよびモニタの構成
7146 ワード
Druidとは?
DruidはまずJava言語で最も優れたデータベース接続プールであり、アリババのオープンソースプロジェクトでもある.Druidはアリババが開発した監視と呼ばれるデータベース接続プールで、機能、性能、拡張性の面ではDBPP、C 3 P 0、BoneCP、Proxool、JBoss Data Sourceなど、他のデータベース接続プールを上回っています.またDruidはすでにアリババに600以上のアプリケーションを配備しており、数年の生産環境の大規模な配置の厳しい試練を経ています.
filters: stat,wall,log4j
stat:Druidには、監視情報を統計するためのStatFilterが内蔵されています.アクセスページを構成する必要がある場合は、https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AEああ、私はまだこれを研究していません.研究の面倒があるので、教えてください.後で更新する機会を探して、結局使いやすいです.wall:DruidがSQL注入攻撃を防御するWallFilterはDruidのSQL Parserによって分析されます.Druidが提供するSQL Parserは、JDBCレイヤでSQLをブロックして対応する処理を行うことができます.たとえば、ライブラリのサブテーブル、監査などです.log 4 j:これがログ記録の機能で、sql文をlog 4 jに印刷して問題を調べることができます.
方式一、サードパーティdruidパッケージの導入
ただし、構成時に手動でDruidDataSourceとモニタを構成する必要があります.この過程でClassNotFound:DruidDataSource(jarが正しく参照されている場合)やその他のエラーが発生したため、この方法は使用されません.
方式二、druid-spring-boot-starterパッケージの導入
application.yml構成
注意:spring-boot 2では、構成に注記されているtype属性を使用しないでください.StringがDataSourceに変換できないエラーが報告されます.
モニタページ:http://localhost:ポート/druid/index.html
DruidはまずJava言語で最も優れたデータベース接続プールであり、アリババのオープンソースプロジェクトでもある.Druidはアリババが開発した監視と呼ばれるデータベース接続プールで、機能、性能、拡張性の面ではDBPP、C 3 P 0、BoneCP、Proxool、JBoss Data Sourceなど、他のデータベース接続プールを上回っています.またDruidはすでにアリババに600以上のアプリケーションを配備しており、数年の生産環境の大規模な配置の厳しい試練を経ています.
filters: stat,wall,log4j
stat:Druidには、監視情報を統計するためのStatFilterが内蔵されています.アクセスページを構成する必要がある場合は、https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AEああ、私はまだこれを研究していません.研究の面倒があるので、教えてください.後で更新する機会を探して、結局使いやすいです.wall:DruidがSQL注入攻撃を防御するWallFilterはDruidのSQL Parserによって分析されます.Druidが提供するSQL Parserは、JDBCレイヤでSQLをブロックして対応する処理を行うことができます.たとえば、ライブラリのサブテーブル、監査などです.log 4 j:これがログ記録の機能で、sql文をlog 4 jに印刷して問題を調べることができます.
方式一、サードパーティdruidパッケージの導入
com.alibaba
druid
1.1.12
ただし、構成時に手動でDruidDataSourceとモニタを構成する必要があります.この過程でClassNotFound:DruidDataSource(jarが正しく参照されている場合)やその他のエラーが発生したため、この方法は使用されません.
/**
* @Title:
* @Description: TODO
* @return DataSource
* @author Sunny
* @date 2018 10 31 2:57:45
* @throws
*/
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druid(){
// DruidDataSource dataSource = new DruidDataSource();
// dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
// dataSource.setUrl(env.getProperty("spring.datasource.url"));
// dataSource.setUsername(env.getProperty("spring.datasource.username"));
// dataSource.setPassword(env.getProperty("spring.datasource.password"));
// dataSource.setInitialSize(Integer.valueOf(env.getProperty("spring.datasource.initial-size")));
// dataSource.setMinIdle(Integer.valueOf(env.getProperty("spring.datasource.min-idle")));
// dataSource.setMaxActive(Integer.valueOf(env.getProperty("spring.datasource.max-active")));
// dataSource.setMaxWait(Integer.valueOf(env.getProperty("spring.datasource.max-wait")));
// return dataSource;
return new DruidDataSource();
}
方式二、druid-spring-boot-starterパッケージの導入
com.alibaba
druid-spring-boot-starter
1.1.10
application.yml構成
#
spring:
application:
name: provider-user
datasource:
username: root
password:
driver-class-name: com.mysql.cj.jdbc.Driver # mysql8.0 com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/enterprise?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8
#type: com.alibaba.druid.pool.DruidDataSource # Druid
druid:
initial-size: 5 #
min-idle: 5 #
max-active: 100 #
max-wait: 60000 #
time-between-eviction-runs-millis: 60000 # , ,
min-evictable-idle-time-millis: 300000 # ,
validationQuery: select 'x'
test-while-idle: true # ,
test-on-borrow: false # ,
test-on-return: false #
filters: config,wall,stat # filters, sql ,'wall'
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
maxOpenPreparedStatements: 20
connectionProperties: druid.stat.slowSqlMillis=200;druid.stat.logSlowSql=true;config.decrypt=true
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: /druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico
session-stat-enable: true
session-stat-max-count: 10
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
login-username: admin
login-password: admin
注意:spring-boot 2では、構成に注記されているtype属性を使用しないでください.StringがDataSourceに変換できないエラーが報告されます.
モニタページ:http://localhost:ポート/druid/index.html