1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package com.gxzc.zen.config
- import com.alibaba.druid.pool.DruidDataSource
- import com.alibaba.druid.support.http.StatViewServlet
- import com.alibaba.druid.support.http.WebStatFilter
- import org.slf4j.LoggerFactory
- import org.springframework.beans.factory.annotation.Autowired
- 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.sql.SQLException
- import javax.sql.DataSource
- @Configuration
- class SysDruidConfig:DruidConfig<SysDruidProperties>()
- /*-----------------druid数据源bean注册 */
- open class DruidConfig<T:DruidProperties> {
- private val logger= LoggerFactory.getLogger(javaClass)
- @Autowired
- private val config:T?=null
- // private val name=nm
- @Bean
- open fun druidDataSource(): DataSource {
- val datasource = DruidDataSource()
- datasource.url = config?.url
- datasource.username = config?.username
- datasource.password = config?.password
- datasource.driverClassName = config?.driverClassName
- datasource.initialSize = config?.initialSize!!
- datasource.minIdle = config?.minIdle!!
- datasource.maxActive = config?.maxActive!!
- datasource.maxWait = config?.maxWait!!
- datasource.timeBetweenEvictionRunsMillis = config?.timeBetweenEvictionRunsMillis!!
- datasource.minEvictableIdleTimeMillis = config?.minEvictableIdleTimeMillis!!
- datasource.validationQuery = config?.validationQuery!!
- datasource.isTestWhileIdle = config?.testWhileIdle!!
- datasource.isTestOnBorrow = config?.testOnBorrow!!
- datasource.isTestOnReturn = config?.testOnReturn!!
- try {
- datasource.setFilters(config?.filters)
- } catch (e: SQLException) {
- logger.error("druid configuration initialization filter", e)
- }
- return datasource
- }
- }
- /*-----------------配置druid显示界面 */
- @Configuration
- class DruidViewConfig{
- @Autowired
- private val config:DruidViewProperties?=null
- @Bean
- fun druidServlet(): ServletRegistrationBean {
- // if(!config?.enable!!)return throw Exception()
- val reg = ServletRegistrationBean()
- reg.setServlet(StatViewServlet())
- reg.addUrlMappings("/druid/*")
- reg.addInitParameter("loginUsername", config?.username)
- reg.addInitParameter("loginPassword", config?.password)
- reg.addInitParameter("logSlowSql", config?.slowsql)
- return reg
- }
- @Bean
- fun filterRegistrationBean(): FilterRegistrationBean {
- // if(!config?.enable!!)return throw Exception()
- val filterRegistrationBean = FilterRegistrationBean()
- filterRegistrationBean.filter = WebStatFilter()
- filterRegistrationBean.addUrlPatterns("/*")
- filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*")
- filterRegistrationBean.addInitParameter("profileEnable", "true")
- return filterRegistrationBean
- }
- }
|