data source initializer

This commit is contained in:
trang
2017-09-21 10:49:14 +08:00
parent 5493703a85
commit 3bb583efca
4 changed files with 29 additions and 13 deletions
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>druid-spring-boot</artifactId>
<groupId>com.github.drtrang</groupId>
<version>1.0.4-SNAPSHOT</version>
</parent>
<artifactId>druid-spring-boot-actuator</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
</project>
@@ -2,7 +2,6 @@ package com.github.trang.druid;
import com.github.trang.druid.datasource.init.DruidDataSourceInitializer;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -15,9 +14,9 @@ import javax.sql.DataSource;
/**
* 支持数据源初始化时执行 SQL
*
* <p>
* 照搬自 #{@link org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer}
*
* <p>
* 在多数据源场景下,#{@link DataSourceAutoConfiguration} 会报 #{@code DataSource} 和
* #{@code DruidDataSourceInitializer} 的循环依赖,目前的解决办法是排除 #{@link DataSourceAutoConfiguration},
* 但是这样一来,Spring Boot 在数据源初始化时执行 SQL 的特性会被移除,此类是为了保留该特性
@@ -25,8 +24,7 @@ import javax.sql.DataSource;
* @author trang
*/
@Configuration
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
@AutoConfigureAfter(DruidAutoConfiguration.class)
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
@ConditionalOnBean(DataSource.class)
public class DruidDataSourceInitializerAutoConfiguration {
@@ -34,9 +32,9 @@ public class DruidDataSourceInitializerAutoConfiguration {
@ConditionalOnMissingBean(
type = "org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer",
value = DruidDataSourceInitializer.class)
public DruidDataSourceInitializer druidDataSourceInitializer(DataSourceProperties properties,
ApplicationContext applicationContext) {
public DruidDataSourceInitializer dataSourceInitializer(DataSourceProperties properties,
ApplicationContext applicationContext) {
return new DruidDataSourceInitializer(properties, applicationContext);
}
}
}
-1
View File
@@ -11,7 +11,6 @@
</parent>
<artifactId>druid-spring-boot-samples</artifactId>
<name>${project.artifactId}</name>
<dependencyManagement>
<dependencies>
@@ -3,10 +3,7 @@ package com.github.trang.druid.controller;
import com.github.trang.druid.mapper.CityMapper;
import com.github.trang.druid.model.City;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/city")