No 3. Integrate Druid MySql data connection pool
Reference: https://www.cnblogs.com/teacher11/p/15222574.html
1. Add dependencies
<!-- Ali database connection pool fhadmin.cn --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.22</version> </dependency>
2. Configure connection pool monitoring html
Access link: http://127.0.0.1:9527/druid/datasource.html
2.1 Bean configuration
Update: application.properties
server.port=9527 # =======ali mysql datasource ========================# spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # ================================ MySQL ================= ==================================================== =========== spring.datasource.url = jdbc:mysql://127.0.0.1:3306/jwtdb?serverTimezone=GMT+8 &useUnicode=true &characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=password spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # ===================================== JPA ============== ==================================================== ================= #Specify the DBMS spring.jpa.database=MYSQL # Show or not log for each sql query sql spring.jpa.show-sql=true # Hibernate ddl auto (create, create-drop, update) create ?create? spring.jpa.hibernate.ddl-auto=update # Naming strategy spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy # stripped before adding them to the entity manager #spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
New configuration class: DataSource_Druid_Configure
package com.example.createpj.data.utils.config.mysql; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.boot.context.properties.ConfigurationProperties; 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 java.util.Arrays; import java.util.HashMap; import java.util.Map; @Configuration //Indicates the configuration class public class DataSource_Druid_Configure { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DruidDataSource getDataSource() { return new DruidDataSource(); } //Configure Druid monitoring //1. Configure a Servlet that manages the background @Bean public ServletRegistrationBean statViewServlet() { ServletRegistrationBean bean =new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); Map<String, String> initParams=new HashMap<>(); initParams.put("loginUsername", "admin");//login user name initParams.put("loginPassword", "123456");//login password initParams.put("allow", "");//The default is to allow all access initParams.put("deny", "192.168.15.21");//deny access bean.setInitParameters(initParams); return bean; } //2. Configure a filter for web monitoring @Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean bean=new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String, String>initParams=new HashMap<>(); initParams.put("exclusions", "*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
2.2 application.properties configuration method
server.port=9527 # ================================ MySQL ================= ==================================================== =========== #spring.datasource.url = jdbc:mysql://127.0.0.1:3306/jwtdb?serverTimezone=GMT+8 &useUnicode=true &characterEncoding=utf-8 #spring.datasource.username=root #spring.datasource.password = password #spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver #================================druid monitor=================== ======================================== spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/jwtdb?serverTimezone=GMT+8 &useUnicode=true &characterEncoding=utf-8 spring.datasource.druid.username=root spring.datasource.druid.password=Lucheng247 ## ? spring.datasource.druid.initialSize=5 #? spring.datasource.druid.minIdle=5 # ? spring.datasource.druid.maxActive=20 ## spring.datasource.druid.maxWait=60000 spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 #spring.datasource.druid.maxEvictableIdleTimeMillis=60000 spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL spring.datasource.druid.testWhileIdle=true spring.datasource.druid.testOnBorrow=true spring.datasource.druid.testOnReturn=true spring.datasource.druid.webStatFilter.enabled=true spring.datasource.druid.webStatFilter.profile-enable=true spring.datasource.druid.webStatFilter.url-pattern=/* spring.datasource.druid.webStatFilter.exclusions='*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*' spring.datasource.druid.statViewServlet.enabled=true spring.datasource.druid.statViewServlet.allow= spring.datasource.druid.statViewServlet.deny=192.168.2.61 spring.datasource.druid.statViewServlet.url-pattern=/druid/* spring.datasource.druid.statViewServlet.login-username=druid spring.datasource.druid.statViewServlet.login-password=druid spring.datasource.druid.statViewServlet.reset-enable=true spring.datasource.druid.filter.stat.enabled=true spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.slow-sql-millis=1000 spring.datasource.druid.filter.stat.merge-sql=true spring.datasource.druid.filter.wall.config.multi-statement-allow=true # ===================================== JPA ============== ==================================================== ================= #Specify the DBMS spring.jpa.database=MYSQL # Show or not log for each sql query sql spring.jpa.show-sql=true # Hibernate ddl auto (create, create-drop, update) create ?create? spring.jpa.hibernate.ddl-auto=update # Naming strategy spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy # stripped before adding them to the entity manager #spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect