Browse Source

优化数据源无法动态设置属性的问题

zhouhao 7 years ago
parent
commit
6f17bee4f1

+ 14 - 0
hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/HswebAutoConfiguration.java

@@ -39,6 +39,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
@@ -53,6 +55,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.sql.DataSource;
 import javax.validation.Validation;
 import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
@@ -177,4 +180,15 @@ public class HswebAutoConfiguration {
     public EntityFactoryInitConfiguration entityFactoryInitConfiguration() {
         return new EntityFactoryInitConfiguration();
     }
+
+    @ConditionalOnMissingBean(DataSource.class)
+    @ConditionalOnProperty(name = "spring.datasource.type")
+    static class DataSourceAutoConfiguration {
+        @Bean
+        @ConfigurationProperties("spring.datasource")
+        public DataSource dataSource(DataSourceProperties properties) {
+            return properties.initializeDataSourceBuilder().build();
+        }
+    }
+
 }