我有一个简单的SpringBoot应用程序,我想使用AutoConfiguration来配置Tomcat jdbc池数据源。SpringBoot数据源自动配置不工作
我使用这些Spring的依赖:
// Spring Boot
compile 'org.springframework.boot:spring-boot-starter-web:1.3.5.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-jdbc:1.3.5.RELEASE'
下面是我的application.yml文件我的数据源属性:
spring:
datasource:
url: jdbc:mysql://my.host/mydb
username: user
password: pwd
driver-class-name: com.mysql.jdbc.Driver
initialSize: 5
我肯定性被加载,因为应用程序是采摘提高其他价值。
我在配置文件中定义bean为:
@Bean(name="myDataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource getDataSource() {
DataSource dataSource = DataSourceBuilder.create().build()
return dataSource
}
我注入数据源到我的DAO是这样的:
@Slf4j
@Repository
class MyDAO {
@Autowired
DataSource dataSource
public void getFoo() {
log.info("DB URL: ${dataSource.getUrl()}")
}
}
如果我在了getDataSource设置断点()方法DataSourceBuilder将创建一个DataSource实例。但是,像URL,用户和密码这样的对象的所有属性都是空的。另外,当我调用getFoo()时,dataSource变量为空。我试过在我的AppConfig中注释掉bean定义。 dataSource仍然为空。有什么建议么?
我翻阅了Spring Boot文档和Spring书,但没有看到像这样的例子。我看到我自己创建DataSource的例子。但我希望Spring的自动配置能够自动将这些东西结合在一起。
在此先感谢您提供的任何帮助。
我已经更新了问题,包括我如何注入bean。我试着在我的Java配置文件中注释这个bean的创建。这样做,注入的数据源为空。 –
Spring注入的东西不应该为null。你如何获得一个空数据源的MyDAO的实例? –
您当场在。我正在新建DAO对象。一旦我改变了它并添加了SpringBoot JPA依赖项,它就可以工作。我试图获得足够的分数来标记您的答案有用。一旦我到达那里,我会给你打个勾。再次感谢。 –