【问题标题】:Spring Boot: Unable to configureSpring Boot:无法配置
【发布时间】: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;
  }

【问题讨论】:

    标签: java spring spring-boot


    【解决方案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 并删除了,但仍然面对它
    猜你喜欢
    • 1970-01-01
    • 2019-05-19
    • 2018-05-08
    • 1970-01-01
    • 2021-10-02
    • 2019-08-15
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    相关资源
    最近更新 更多