O Druid é uma implementação de um pool de conexão de banco de dados na plataforma de código aberto do Alibaba. Ele combina as vantagens dos pools de banco de dados, como C3P0, DBCP, Proxol e também adiciona monitoramento de log, que pode monitorar as conexões dos pools de banco de dados e bem a execução do SQL. Pode -se dizer que é um pool de conexão de banco de dados criado para monitoramento (diz -se que é o melhor pool de conexões no momento)
1. Dependência
Para testes, use JDBCTemplate
<!-jdbctemplate-> <pendency> <puperid> org.springframework.boot </groupiD> <TRAFACTID> Spring-boot-starter-jdbc </artifactId> </dependency> <!-druid bate -abase de conexão-> <pendency> <purincy> <purs> com.alibaba <! <Versão> 1.0.26 </sisters> </dependency> <!-MySQL Connector-> <pendency> <puperid> mysql </groupiD> <TRAFACTID> mysql-conector-java </ArtifactId> <cope> runtime </cope> </pendency>
2. Configuração do druida
Druid.Properties#Configurações do banco de dados spring.dataSource.driverclassName = com.mysql.jdbc.driverspring.dataSource.url = jdbc: mysql: // localhost: 3306/uu_core? useunicode = true & caracteryncoding = utf8 & aut oreconnect = true & usessl = truespring.dataSource.username = rootspring.datasource.password = root#-------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Inicialize o tamanho, mínimo, mola máxima.dataSource.initialSize = 5spring.datasource.minidle = 1spring.datasource.maxactive = 50# Configure o tempo para que a conexão seja o tempo de espera para realizar o tempo limite. spring.dataSource.TimeBetweenEvictionRunsmillis = 60000# Configure o tempo mínimo para sobreviver na piscina, em milissegundos primavera.dataSource.mineVictableIdletimemillis = 300000spring.datasource.validationQuery = selecione 1 de Dualspring.dataSource.testwhileidle = truespring.dataSource.testonborrow = falspring.dataSource.testOnReturn = false# aberto PSCACHE e especifique o tamanho do pScACHACHACHATHS em cada conexão spring.dataSource.PoolPreparedEdements = Falsegh.Data.MATATAS.MATAS.MATAS Spring.DataSource.PreparedEdemeMements = Falsegh.Dring.MaSTAs.MATAS.MATATAS Spring.datasource.PeRePeDeedEmements = Falker.Dring.MaSTAs. Configure filtros para monitoramento de estatísticas interceptadas. Depois de removê -lo, a interface de monitoramento SQL não pode ser contada. 'Wall' é usado para o firewall spring.dataSource.filters = stat, parede, log4j# aberto função de mesclescl através da propriedade ConnectProperties; lento sql registros spring.dataSource.ConnectionProperties = druid.stat.mergesql = true; druid.stat.lowsqlmillis = 5000# Mesclar dados de dados de múltiplos druiddataSource# spring.datasource.useglobaldatasourCestat = verdadeiro
3. Instanciar Druid DataSource
pacote cn.aduu.config; import com.alibaba.druid.pool.druiddataSource; importação com.alibaba.druid.support.http.statviewServlet; import com.alibaba.druid.support.http.webstilter; org.springframework.boot.context.properties.configurationproperties; importar org.springframework.boot.web.servlet.filterregistrationBean; importação.Smport.springFramework.boot.web.sertletlet.SerVonBeanBeanBeanBeanBeanBeanBeanBeanBeanBeanBeanBeanBeanBean; org.springframework.context.annotation.configuration; importar org.springframework.context.annotation.propertysource; importar javax.sql.dataSource;/** ** * @author zh * @classname cn.aduu.config.dridfig.druidfignconfig (@Cllassname cn.aduu.config.dridfig.Druidfignfig (@author * @classname cn.aDuu.config.dridfig.Druidfignfig (@author * * @classname cn.aduu.config.dridfig.druidfignfig. "Classpath: druid.properties") public class DruidConfiguration {@Bean (DestroyMethod = "Close", initmethod = "init") @configurationproperties (prefix = "spring.dataSource") public DataSource druiddddddddddddddddddddDeCeTeSoSource ") public DataSource DRUIDDDDDDDDDDDDDDDDECE () {druiddadas") retornar druiddatasource; } /** * Registre um StatViewServlet * @RETURN * /@Bean Public ServletRegistrationBean druidStatViewServlet () {//org.springframework.boot.context.embedded.servletRegistrationBean Fornece a classe para registro. ServletRegistrationBean ServletRegistrationBean = new ServletRegistrationBean (new StatViewServlet (), "/druid/*"); // Adicionar parâmetros de inicialização: initParams // Whitelist: servletRegistrationBean.addinitParameter ("permitir", "127.0.0.1"); // IP Blacklist (quando houver uma semelhança, a negação tem precedência de permitir): se a negação for satisfeita, pronta: Desculpe, você não pode visualizar esta página. ServletRegistrationBean.addinitParameter ("Deny", "192.168.1.73"); // Login a senha da conta para visualizar informações. servletRegistrationBean.addinitParameter ("LoginUserName", "Admin"); ServletRegistrationBean.addinitParameter ("LogInpassword", "123456"); // É possível redefinir os dados? ServletRegistrationBean.addinitParameter ("Redeecenável", "Falso"); retornar servletRegistrationBean; } / ** * Registre um: filtroRegistrationBean * @return * / @Bean public filterRegistrationBean druidStatfilter () {filterRegistrationBean filterReGistrationBean = new filterRegistrationBean (new webstatfilter ()); // Adicione regras de filtro. filtroRegistrationBean.addurlpatterns ("/*"); // Adicione informações de formato que não precisam ser ignoradas. filterRegistrationBean.addinitParameter ("exclusões", "*. JS,*. GIF,*. retornar filtroRegistrationBean; }}4. Monitoramento
Visite http: // localhost: 8080/druid e use a senha da conta configurada acima.
V. teste
@RestControllerPublic Classe Hellocontroller {private Static Final Logger Logger = LoggerFactory.getLogger (hellocontroller.class); @AUTOWIRED PRIVADO JDBCTEMPLATE JDBCTEMPLATE; @RequestMapping ("Hello) Lista pública <map <string, object >> hello () {list <map <string, object >> list = jdbctemplate.QueryForList (" Selecione User, senha de mysql.user ", novo objeto [] {}; lista de retorno; }}Visite localhost: 8080/Olá
[{"User": "Root", "Senha": "*81F5E21E35407D884A6CD4A731EBFB6AF209E1B"}, {"User": "Root", "Password": "*81f5E21E35407D8884A6, Resumir
O exposto acima é a fonte de dados do trampolim introduzida pelo editor para você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!