2015-11-29 27 views
6

Có vẻ như (có thể không), SpringBoot không thể tải tệp application.properties nằm trên src/main/resources. Tôi cần thêm cấu hình gì để khởi động ứng dụng của mình?Khởi động mùa xuân: Không thể định cấu hình

Lỗi Trace:

Nguyên nhân:

org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException: Không thể xác định nhúng lớp lái xe cơ sở dữ liệu cho loại hình cơ sở dữ liệu NONE. Nếu bạn muốn có cơ sở dữ liệu nhúng, hãy đặt một lớp được hỗ trợ trên đường dẫn lớp. Nếu bạn có cài đặt cơ sở dữ liệu được tải từ một cấu hình cụ thể , bạn có thể cần phải kích hoạt nó (không có tiểu sử nào là hiện đang hoạt động).

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

Trả lời

7

Bạn đang thiếu DB JAR trên classpath của bạn. Nếu bạn đang sử dụng Maven/Gradle, chỉ cần bao gồm phụ thuộc trình điều khiển JDBC vào tệp POM/gradle của bạn.

+0

khi tôi cố gắng thêm http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.37, maven cảnh báo "Sao chép phiên bản được quản lý". Tôi đoán khởi động mùa xuân đã thêm phụ thuộc cho tôi? – Forkmohit

+4

Chỉ cần xóa phiên bản khỏi phụ thuộc của maven. Đây là tính năng của Spring Boot. – luboskrnac

Các vấn đề liên quan