Предисловие
Я давно не обновлял статьи Spring Boot Series. Как вы думаете, вы заняты? Также возможно, что в центре внимания некоторого времени может быть сосредоточено на других аспектах. В последнее время проект должен разработать мини-программу, которая просто использует Spring Boot для реализации сервисного обслуживания. Соответствующие случаи кода будут переданы позже, чтобы все не были запутаны при выполнении мини-программы.
В разделе Spring Boot несколько доступных пулов подключений (DBCP, DBCP2, Tomcat, Hikari) предоставляются по умолчанию. Конечно, Друид не поддерживает Друид. Друид происходит из пула соединений с открытым исходным кодом в Alibaba. Это обеспечивает очень отличные функции мониторинга. Позвольте мне поделиться с вами, как интегрировать с Spring Boot.
Версия среда
Spring Boot 1.5.2. Release, Druid 1.1.6, JDK1.7
Системная интеграция
Добавить зависимость pom.xml:
<!-JPA-> <Dependency> <groupId> org.springframework.boot </GroupId> <straCactId> Spring-boot-starter-data-jpa </artifactid> </depertive> <!-mysql-> <dependency> <groupid> mysql </GroupD> <! <artifactid> mysql-connector-java </artifactid> </dependency> <!-druid-> <dependency> <groupid> com.alibaba </groupid> <artifactid> druid </artifactid> <sersive> 1.1.6 </version> </jepertic>>
Настройка Application.properties:
#Data источник spring.datasource.url = jdbc: mysql: //192.168.1.66: 3306/spring_boot? Характерподинг = utf-8 & usessl = falsspring.datasource.username = oorpring.da tasource.password = rotspring.datasource.driver-class-name = com.mysql.jdbc.driverspring.datasource.type = com.alibaba.druid.pool.druiddatasource# Инициализировать размер, минимум, максимальный spring.datasource.initialsize = 1spring.datasource.minidle = 3spring.datasource.maxactive = 20# Настройка времени, чтобы получить время ожидания подключения. spring.datasource.timebeweenevictionrunsmillis = 60000# Настройте минимальное время для подключения к выживанию в бассейне, в миллисекундах Spring.datasource.minevictableIdleTimeMillis = 30000Spring.Datasource.validationQuery = Select 'x'spring.datasource.testwhileidle = truepring.datasource.testonborrow = falspring.datasource.testonretur spring.datasource.poolpreparedStatements = truepring.datasource.maxpoolpreparedStatementPerconcectionize = 20# Настройка фильтров для мониторинга статистики перехватывает. После удаления его нельзя подсчитать интерфейс мониторинга. «Стена» используется для брандмауэра Spring.datasource.filters = stat, Wall, SLF4J# Открыть функцию MergesQL через свойство ConnectProperties; Медленные записи SQL Spring.datasource.connectionProperties = druid.stat.mergeSql = true; druid.stat.slowsqlmillis = 5000
Настройте файл YML (выберите один из двух выше)
Весна: DataSource: URL: JDBC: MySQL: //192.168.1.66: 3306/spring-boot? useUnicode = true & haremencoding = utf-8 & usessl = false username: root password: root driver-class-ame: com.mysql.jdbc.driver: платформа MySql: root Driver-name: com.mysql.jdbc.driver: MySql: root Driver-name: com.mysql.jdbc.driver: MySql com.alibaba.druid.pool.druiddataSource # Ниже приведен дополнительная настройка пула соединений, которая применяется ко всем источникам данных выше # Размер инициализации, минимум, максимальный инициал: 1 Минидл: 3 Максиактивный: 20 # Настройте время, чтобы получить время ожидания. В Millisecond TimeBowneEvictionRunsmillis: 60000 # Настройте минимальное время для выживания в пуле MineVictableIdletimelis: 30000 ValidationQuery: Выберите «x 'testwhileidle: True TestonBork: false Testonretur maxpoolpreparedStatementPerconcectionsize: 20 # Настройка фильтров для контроля статистики перехвата. После удаления интерфейса мониторинга SQL интерфейс мониторинга не может быть подсчитан. «Стена» используется для фильтров брандмауэра: статистика, стена, SLF4J # Открыть функцию MergesQL через свойство ConnectProperties; Slow SQL Record ConnectionProperties: Druid.stat.mergeSql = true; druid.stat.slowsqlmillis = 5000
Настройка функции мониторинга и статистики Druid
Импорт java.sql.sqlexception; import javax.sql.datasource; import org.slf4j.logger; import org.slf4j.loggerfactory; импорт org.springframe.boot.context.properties.configurationperties; importframe.boot.context.properties.configurationperties; org.springframework.boot.web.servlet.filterRegistrationbean; импорт org.springframework.boot.web.servlet.servletregistrationbean; import org.springframework.context.nantation.bean; import org.spramework.annotation.nantotation.comprigation; com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;/** * Alibaba Database Connection Pool Druid Configuration* Creator* Created by 7* Created on March 15, 2018*/@ConfigurationPublic Class DruidConfiguration {Private Static Final Logger logger = loggerFactory.getLogger (druidConfiguration.class); частная статическая конечная строка db_prefix = "spring.datasource"; @Bean public servletregistrationbean druidservlet () {logger.info ("Конфигурация сервлета инициации Druid"); ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean (New StatViewServlet (), "/Druid/*"); // IP WhiteList (без конфигурации или пустого, допускается весь доступ) ServletRegistrationBean.AddinitParameter («разрешить», «»); // IP BlackList (DINY имеет приоритет, разрешающую, когда сосуществует) //servletregistrationbean.addinitParameter("deny "," 192.168.1.100 "); // Управление консоли пользователь servletregistrationbean.addinitParameter ("LoginUsername", "Admin"); ServletRegistrationBean.AddinitParameter («LoginPassword», «Admin»); // можно ли сбросить данные и отключить «сброс на HTML -странице All» Function servletregistrationbean.addinitParameter («Resetenable», «false»); возврат сервис -регистрации } @Bean public filterRegistrationbeanbean filterRegistrationbean () {FilterRegistrationBeanbear RegistrationBean = new FilterRegistrationBean (New WebStatFilter ()); FilterRegistrationBean.AddurlPatterns ("/*"); FilterRegistrationBean.addinitParameter ("Исключения", "*.js,*. Gif,*. Jpg,*. Png,*. CSS,*. ICO,/Druid/*"); возврат FilterRegistrationBean; } @ConfigurationProperties (prefix = db_prefix) класс idatasourceproperties {private String url; частное имя пользователя; Private String Password; Private String DriverClassName; частный int инициализируется; Частный Minidle; частный int maxactive; Частный int maxwait; Частный Int TimeWeenEvictionRunsmillis; Частный int minevictableidletimemillis; Private String ValidationQuery; Частный логический тест, который -то; Частный логический TestonBorrow; Частный логический тестонт; частные логические бассейны; Private int maxpoolpreparedStatementPerconnectionsize; частные струнные фильтры; Private String ConnectionProperties; @Bean public DataSource DataSource () {druiddatasource dataSource = new DruidDatasource (); dataSource.setUrl (url); dataSource.setuserName (имя пользователя); dataSource.setPassword (пароль); dataSource.setDriverClassName (DriverClassName); // configuration dataSource.setInitialSize (инициализация); dataSource.setMinidle (minidle); dataSource.setMactactive (maxactive); dataSource.setMaxWait (maxwait); dataSource.setTimeBetweeEvictionRunsmillis (TimeBhingWeeVictionRunsmillis); dataSource.SetMineVictableIdletimemillis (mineVictableIdletimemillis); dataSource.setValidationQuery (valyationQuery); dataSource.SetTestWhileIdle (тест -WhileIdle); dataSource.setTestonBorrow (testonBorrow); dataSource.setTestonReturn (testonReturn); dataSource.SetPoolPReparedStatements (PoolPRearedStatements); dataSource.SetMaxPoolPReparEdStateMentPerConnectionsize (maxpoolpreparedStatementPerconnectionsize); try {dataSource.setFilters (Filters); } catch (sqlexception e) {System.err.println ("Фильтр инициализации конфигурации друида:" + e); } dataSource.setConnectionProperties (ConnectionProperties); вернуть DataSource; } public String getUrl () {return url; } public void seturl (string url) {this.url = url; } public String getUsername () {return username; } public void setUsername (string username) {this.username = username; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; } public String getDriverClassName () {return DriverClassName; } public void setDriverClassName (String DriverClassName) {this.DriverClassName = DriverClassName; } public int getInitialSize () {return initialSize; } public void setInitialSize (int инициализируется) {this.ItialSize = инициализ; } public int getMinidle () {return minidle; } public void setMinidle (int minidle) {this.minidle = minidle; } public int getmaCactact () {return maxactive; } public void setmaCactive (int maxactive) {this.maxactive = maxactive; } public int getMaxWait () {return maxwait; } public void setMaxWait (int maxwait) {this.maxwait = maxwait; } public int getTimeWeeWeeVictionRunSmillis () {return TimeBhingWeeVictionRunsmillis; } public void settimeWeeWeeVictionRunsmillis (int timeboolweeEvictionrunsmillis) {therimeBeneEvictionRunSmillis = TimeBowneEvictionRunSmillis; } public int getMineVictableIdletImeMillis () {return mineVictableIdleTimeMillis; } public void setMineVictableIdletImeMillis (int mineVictableIdleTimeMillis) {this.minevictableIdleTimeMillis = mineVictableIdleMemillis; } public String getValidationQuery () {return validationQuery; } public void setValidationQuery (string valyationQuery) {this.validationQuery = valistingQuery; } public boolean isTestWhileIdle () {return TestWhileIdle; } public void setteStestWhileIdle (логическое испытание, которое может быть } public boolean istestonborrow () {return testonborrow; } public void setteStonBorrow (Boolean TestonBorrow) {this.TestonBorrow = testonBorrow; } public boolean isTestonReturn () {return testonReturn; } public void setteStonReturn (Boolean TestonReturn) {this.TestonRepur = testonReturn; } public boolean ispoolpreparedStatements () {return poolpreparedStatements; } public void setPoolPReparedStatements (Boolean PoolPRearedStatements) {this.poolpreparedStatements = poolprepareDStatements; } public int getMaxPoolpReparedStatementPerconcectionize () {return maxpoolpreparedStatementPerConnectionsize; } public void setMaxPoolPReparEdStateMentPerConnectionsize (int maxpoolpreparedStatementPerconcectionsize) {this.maxpoolpReparedStateMentPerconctionsize = maxPoolPrepareDStateMentEmentConceize; } public String getFilters () {return Filters; } public void setFilters (String Filters) {this.filters = filters; } public String getConnectionProperties () {return ConnectionProperties; } public void setConnectionProperties (String ConnectionProperties) {this.connectionProperties = connectionProperties; }}}Запустите приложение, адрес доступа: http: // localhost: 8080/druid/, введите пароль настройки учетной записи и войдите в систему, и вы можете просмотреть источник данных и статистику SQL и другой мониторинг. Рендеринги следующие:
Конечно, Alibaba также предоставляет интегрированную версию Druid Springboot (Druid-Spring-Boot-Starter), вы можете обратиться к следующей ссылке.
См.
https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
https://github.com/alibaba/druid/wiki
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.