Spring Boot JPA 找不到数据源
Posted
技术标签:
【中文标题】Spring Boot JPA 找不到数据源【英文标题】:Spring Boot JPA not finding data source 【发布时间】:2017-11-05 23:53:45 【问题描述】:我有一个 Spring Boot 应用程序,配置如下:
应用
@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class,
DataSourceAutoConfiguration.class,JpaRepositoriesAutoConfiguration.class)
public class Application extends SpringBootServletInitializer
主要配置类:
@Configuration
@ComponentScan("com.mycompany.it")
@Import(DatabaseConfiguration.class)
public class Configuration extends WebMvcConfigurationSupport
数据库配置:
@Configuration
@ComponentScan(basePackages = "com.mycompany.it.xp2.integration.workday.dao","com.mycompany.it.xp2.integration.workday.application","com.company.it.xp2.integration.workday.model")
@EnableAspectJAutoProxy
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "com.company.it.xp2.integration.workday.dao","com.company.it.xp2.integration.workday.model")
public class DatabaseConfiguration
使用 DataSource bean 声明:
@Bean(destroyMethod = "close")
@Primary
public DataSource dataSource() throws PropertyVetoException
ComboPooledDataSource source = new ComboPooledDataSource();
source.setDriverClass(driverClass);
source.setJdbcUrl(jdbcUrl);
source.setUser(jdbcUsername);
source.setPassword(jdbcPassword);
source.setInitialPoolSize(initialSize);
source.setMaxPoolSize(maxActive);
source.setMinPoolSize(minIdle);
return source;
但是,当我启动应用程序时,我收到以下错误:
原因: org.springframework.beans.factory.UnsatisfiedDependencyException: 创建具有名称的 bean 时出错 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': 通过构造函数参数 0 表示的不满足的依赖关系; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 “javax.sql.DataSource”类型的合格 bean 可用:预计在 至少 1 个符合自动装配候选资格的 bean。依赖 注释:
以下是 gradle 中的相关行:
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-aop'
compile group: 'org.springframework', name: 'spring-orm'
compile group: "org.springframework.boot", name: "spring-boot-starter-jdbc"
compile "org.springframework.boot:spring-boot-starter-data-jpa"
Spring Boot 1.5.3 版
【问题讨论】:
能否请您发布项目的依赖项并添加数据库连接器依赖项 为什么要从spring自动加载器中排除DataSourceAutoConfiguration.class? 我们有一个不检查源代码密码的策略,而且由于多个项目共享同一个tomcat实例,我们不能只在tomcat环境设置中使用spring.jdbc.password属性 【参考方案1】:检查错误日志
1 个符合自动装配候选资格的 bean。依赖注解
好像你配置bean的时候出错了。
【讨论】:
以上是关于Spring Boot JPA 找不到数据源的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot Jpa 1.4.0 - 找不到能够从类型 [java.util.HashMap<?, ?>] 转换为 Pojo 类型的转换器
Spring Boot JPA 错误:无法处理托管/反向引用“defaultReference”:从类型中找不到反向引用属性
Spring Boot Kotlin 找不到存储库 Bean