package cn.flightfeather.supervision.datasource.config
|
|
import com.alibaba.druid.pool.DruidDataSource
|
import com.alibaba.druid.support.http.StatViewServlet
|
import com.alibaba.druid.support.http.WebStatFilter
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass
|
import org.springframework.boot.context.properties.ConfigurationProperties
|
import org.springframework.boot.jdbc.DataSourceBuilder
|
import org.springframework.context.annotation.Bean
|
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Primary
|
import org.springframework.transaction.annotation.EnableTransactionManagement
|
import org.springframework.boot.web.servlet.ServletRegistrationBean
|
import org.springframework.boot.web.servlet.FilterRegistrationBean
|
import javax.servlet.Filter
|
import javax.servlet.Servlet
|
|
|
@Configuration
|
@EnableTransactionManagement
|
class DatabaseConfig {
|
|
@Bean
|
@Primary
|
@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource::class)
|
@ConfigurationProperties(prefix = "spring.datasource",ignoreInvalidFields = true)
|
fun dataSource(): DruidDataSource = DataSourceBuilder.create().type(DruidDataSource::class.java).build()
|
|
@Bean
|
fun druidServlet(): ServletRegistrationBean<*> {
|
val reg = ServletRegistrationBean<Servlet>()
|
reg.setServlet(StatViewServlet())
|
reg.addUrlMappings("/druid/*")
|
reg.addInitParameter("loginUsername", "root")
|
reg.addInitParameter("loginPassword", "LWadmin@123")
|
reg.addInitParameter("logSlowSql", "true")
|
return reg
|
}
|
|
@Bean
|
fun filterRegistrationBean(): FilterRegistrationBean<*> {
|
val filterRegistrationBean = FilterRegistrationBean<Filter>()
|
filterRegistrationBean.filter = WebStatFilter()
|
filterRegistrationBean.addUrlPatterns("/*")
|
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*")
|
filterRegistrationBean.addInitParameter("profileEnable", "true")
|
return filterRegistrationBean
|
}
|
|
}
|