Spring Boot:无法配置
Posted
技术标签:
【中文标题】Spring Boot:无法配置【英文标题】:Spring Boot: Unable to configure 【发布时间】:2016-03-03 03:45:44 【问题描述】:似乎(也许不是)SpringBoot 无法加载位于 src/main/resources 上的 application.properties 文件。我需要添加什么额外的配置来启动我的应用程序?
错误追踪:
原因:
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: 无法确定数据库类型的嵌入式数据库驱动程序类 没有。如果您想要一个嵌入式数据库,请放置一个受支持的数据库 类路径。如果您有要从 您可能需要激活它的特定配置文件(没有配置文件是 目前处于活动状态)。
MembersApplication.java
@SpringBootApplication
public class MembersApplication
public static void main(String[] args)
SpringApplication.run(MembersApplication.class, args);
DatabaseConfig.java
@Configuration
@EnableTransactionManagement
public class DatabaseConfig
@Value("$db.driver")
private String DB_DRIVER;
@Value("$db.password")
private String DB_PASSWORD;
@Value("$db.url")
private String DB_URL;
@Value("$db.username")
private String DB_USERNAME;
@Value("$hibernate.dialect")
private String HIBERNATE_DIALECT;
@Value("$hibernate.show_sql")
private String HIBERNATE_SHOW_SQL;
@Value("$hibernate.hbm2ddl.auto")
private String HIBERNATE_HBM2DDL_AUTO;
@Value("$entitymanager.packagesToScan")
private String ENTITYMANAGER_PACKAGES_TO_SCAN;
@Bean
public DataSource dataSource()
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(DB_DRIVER);
dataSource.setUrl(DB_URL);
dataSource.setUsername(DB_USERNAME);
dataSource.setPassword(DB_PASSWORD);
return dataSource;
@Bean
public LocalSessionFactoryBean sessionFactory()
LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource());
sessionFactoryBean.setPackagesToScan(ENTITYMANAGER_PACKAGES_TO_SCAN);
Properties hibernateProperties = new Properties();
hibernateProperties.put("hibernate.dialect", HIBERNATE_DIALECT);
hibernateProperties.put("hibernate.show_sql", HIBERNATE_SHOW_SQL);
hibernateProperties.put("hibernate.hbm2ddl.auto", HIBERNATE_HBM2DDL_AUTO);
sessionFactoryBean.setHibernateProperties(hibernateProperties);
return sessionFactoryBean;
@Bean
public HibernateTransactionManager transactionManager()
HibernateTransactionManager transactionManager =
new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
【问题讨论】:
【参考方案1】:您的类路径中缺少 DB JAR。如果您使用的是 Maven/Gradle,只需将 JDBC 驱动程序依赖项包含到您的 POM/gradle 文件中即可。
【讨论】:
当我尝试添加 mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.37 时,maven 警告“复制托管版本”。我猜 Spring Boot 给我增加了依赖? 只需从 maven 依赖项中删除版本即可。这是 Spring Boot 的特性。 我已经添加了 spring jpa 并删除了,但仍然面对它以上是关于Spring Boot:无法配置的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 自动配置无法与 spring-data-jpa 一起正常工作
Kotlin Spring Boot 注解处理“无法解析配置处理”
由于未绑定的 RestTemplate,Spring-Boot RestClientTest 无法正确自动配置 MockRestServiceServer