In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-23 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >
Share
Shulou(Shulou.com)06/01 Report--
Add dependencies
Org.mybatis.spring.boot mybatis-spring-boot-starter 1.2.0 mysql mysql-connector-java runtime com.alibaba druid 1.0.26
2. Configure application.properties
# # mysql data Source configuration # # spring.datasource.url=jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver#druid connection Pooled spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
Note: in fact, it can be used normally at this point, but if you want to use many properties in druid, you need to add supporting classes
Add the supporting classes of druid
Package com.example.demo.utils.configuration.druid;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DatabaseDriver;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.alibaba.druid.pool.DruidDataSource / * * druid support class * @ Author: I love Dajin * @ Description: druid support class * @ Date: Created in 12:48 2017-6-20 * / @ Configurationpublic class DruidConfiguration {@ ConditionalOnClass (DruidDataSource.class) @ ConditionalOnProperty (name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource" MatchIfMissing = true) static class Druid extends DruidConfiguration {@ Bean @ ConfigurationProperties ("spring.datasource.druid") public DruidDataSource dataSource (DataSourceProperties properties) {DruidDataSource druidDataSource = (DruidDataSource) properties.initializeDataSourceBuilder () .type (DruidDataSource.class) .build () DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl (properties.determineUrl ()); String validationQuery = databaseDriver.getValidationQuery (); if (validationQuery! = null) {druidDataSource.setValidationQuery (validationQuery);} return druidDataSource;}
Configure application.properties:
# # mysql data source configuration # # spring.datasource.url=jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource. Type=com.alibaba.druid.pool.DruidDataSource# initialization connection size spring.datasource.druid.initial-size=8# minimum number of idle connections spring.datasource.druid.min-idle=5# maximum number of connections spring.datasource.druid.max-active=10# query timeout spring.datasource.druid.query-timeout=6000# transaction query timeout spring.datasource.druid.transaction-query-timeout=6000# close idle connection timeout spring.datasource.druid.remove-abandoned-timeout=1800
IV. Monitoring
4.1.Configuring servlet
Package com.example.demo.utils.configuration.druid;import javax.servlet.annotation.WebInitParam;import javax.servlet.annotation.WebServlet;import com.alibaba.druid.support.http.StatViewServlet / * Monitoring-configure servlet * @ Author: I love Dajin * @ Description: monitoring-servlet * @ Date: Created in 12:50 2017-6-20 * / @ WebServlet (urlPatterns = {"/ druid/*"}, initParams = {@ WebInitParam (name = "loginUsername", value = "liuy"), @ WebInitParam (name = "loginPassword", value = "123456")}) public class DruidStatViewServlet extends StatViewServlet {private static final long serialVersionUID = 1L;}
4.2.Configuring filter
Package com.example.demo.utils.configuration.druid;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;import com.alibaba.druid.support.http.WebStatFilter / * Monitoring-configure filter * @ Author: I love Dajin * @ Description: description * @ Date: Created in 12:51 2017-6-20 * / @ WebFilter (filterName = "druidWebStatFilter", urlPatterns = "/ *", initParams = {@ WebInitParam (name = "exclusions", value = "* .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")}) public class DruidWebStatFilter extends WebStatFilter {}
Testing: accessing http://localhost:9090/druid/index.html
Note: there is no SQL monitoring or spring monitoring at this time.
4.3.Configuring sql monitoring and spring monitoring
Configure sql monitoring in the application.properties file
# sql monitoring configuration: filter class name: stat,config,encoding,loggingspring.datasource.druid.filters=stat
Spring Monitoring configuration
Step 1: create a new configuration file, such as druid-bean.xml
Com.example.demo.mapper.*
Step 2: load the druid-bean.xml file on the startup class
Package com.example.demo;import com.example.demo.utils.filter.CustomFilter;import com.example.demo.utils.listener.CustomListener;import com.example.demo.utils.servlet.CustomServlet;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ImportResource;import javax.servlet.DispatcherType;import javax.servlet.ServletContext;import javax.servlet.ServletException;import java.util.EnumSet @ ServletComponentScan@SpringBootApplication@ImportResource (locations = {"classpath:druid-bean.xml"}) public class SpringbootDemo27Application {public static void main (String [] args) {SpringApplication.run (SpringbootDemo27Application.class, args);}}
Restart the service with an exception:
Solution: add aop dependencies
Org.springframework.boot spring-boot-starter-aop
Restart the service
Another way of implementation
Package com.liuy.demo.configuration;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DatabaseDriver;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.alibaba.druid.pool.DruidDataSource Import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter @ Configurationpublic class DruidConfiguration {@ ConditionalOnClass (DruidDataSource.class) @ ConditionalOnProperty (name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true) static class Druid extends DruidConfiguration {@ Bean @ ConfigurationProperties ("spring.datasource.druid") public DruidDataSource dataSource (DataSourceProperties properties) {DruidDataSource druidDataSource = (DruidDataSource) properties.initializeDataSourceBuilder (). Type (DruidDataSource.class). Build () DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl (properties.determineUrl ()); String validationQuery = databaseDriver.getValidationQuery (); if (validationQuery! = null) {druidDataSource.setValidationQuery (validationQuery);} return druidDataSource } @ Bean public ServletRegistrationBean statViewServlet () {ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean (new StatViewServlet (), "/ druid/*"); / / IP whitelist servletRegistrationBean.addInitParameter ("allow", "127.0.0.1192.168.1.83") / / IP blacklist (priority is higher than whitelist) servletRegistrationBean.addInitParameter ("deny", "192.168.1.100"); / / console management user servletRegistrationBean.addInitParameter ("loginUsername", "liuy"); servletRegistrationBean.addInitParameter ("loginPassword", "123456") / / whether the data servletRegistrationBean.addInitParameter ("resetEnable", "false") can be reset; return servletRegistrationBean;} @ Bean public FilterRegistrationBean statFilter () {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean (new WebStatFilter ()) / / add filter rule filterRegistrationBean.addUrlPatterns ("/ *"); / / ignore filter format filterRegistrationBean.addInitParameter ("exclusions", "* .js,*.css,*.jpg,*.ico,/druid/*"); return filterRegistrationBean;}}
Application.properties:
Spring.profiles.active=devserver.port=9090##mysql data Source configuration # # spring.datasource.url=jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql .jdbc.Driver # druid connection pool spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# initialization size Minimum, maximum spring.datasource.druid.initial-size=5spring.datasource.druid.minIdle=5spring.datasource.druid.maxActive=20# get connection wait time out (milliseconds) how often is the spring.datasource.druid.max-wait=60000# detected Detect idle connections that need to be closed (milliseconds) spring.datasource.druid.time-between-eviction-runs-millis=60000# minimum lifetime of a connection in the pool (milliseconds) spring.datasource.druid.min-evictable-idle-time-millis=300000spring.datasource.druid.validation-query=SELECT 1 FROM DUALspring.datasource.druid.test-while-idle=truespring.datasource.druid.test-on-borrow=falsespring.datasource.druid.test-on-return=false# open PSCache And specify the size of the PSCache on each connection spring.datasource.druid.pool-prepared-statements=truespring.datasource.druid.max-pool-prepared-statement-per-connection-size=20# query timeout spring.datasource.druid.query-timeout=6000# transaction query timeout spring.datasource.druid.transaction-query-timeout=6000# close idle connection timeout spring.datasource.druid.remove-abandoned-timeout=1800# sql monitoring configuration: filter class name: stat,config,encoding Loggingspring.datasource.druid.filters=stat# turns on the mergesql function through the connect-properties property Slow query record spring.datasource.druid.connect-properties.druid.stat.meergeSql=true Spring.datasource.druid.connect-properties.druid.stat.slowSqlMillis=5000# merges monitoring data of multiple druidDataSource # spring.datasource.druid.use-global-data-source-stat=true##mybatis is integrated based on xml # # sweep package Mybatis.mapper-locations: classpath:mybatis/*.xml# alias mybatis.type-aliases-package: com.liuy.demo.pojo
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.