2015-11-29 187 views
6

看起来(也许不是),SpringBoot无法加载驻留在src/main/resources上的application.properties文件。我需要添加什么额外的配置来启动我的应用程序?Spring Boot:无法配置

错误跟踪:

造成的:

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; 
    } 

回答

7

你缺少你的类路径DB JAR。如果您正在使用Maven/Gradle,只需将JDBC驱动程序依赖包括到您的POM/gradle文件中即可。

+0

当我尝试添加http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.37时,maven警告“复制托管版本”。我猜春季引导为我增加了依赖性? – Forkmohit

+4

只需从maven依赖关系中删除该版本即可。这是Spring Boot的特色。 – luboskrnac