1. 程式人生 > >【錯誤解決】springBoot啟動報錯:Error starting ApplicationContext. To display the auto-configuration report re-

【錯誤解決】springBoot啟動報錯:Error starting ApplicationContext. To display the auto-configuration report re-

【錯誤解決】springBoot啟動報錯:Error starting ApplicationContext. To display the auto-configuration report re-run your application with ‘debug’ enabled.

錯誤資訊:
Error starting ApplicationContext. To display the auto-configuration report re-run your application with ‘debug’ enabled.
Cannot determine embedded database driver class for database type NONE

Action:

If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).

網上搜索一大堆解決方案是:
springboot啟動時會自動注入資料來源和配置jpa
在@SpringBootApplication中排除其注入
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})

首先應該搞明白上面這句話是什麼意思;啟動的時候會自動注入資料來源

因為很多新手都是直接copy別人的配置檔案,
在配置檔案中是這麼寫的
很多人在配置檔案application.properties是這麼寫的:
spring.druid.url=jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
spring.druid.username=root
spring.druid.password=xxxxx
spring.druid.maxActive=20
spring.druid.minIdle=3
spring.druid.maxWait=10000
spring.druid.validationQuery=SELECT ‘x’
spring.druid.timeBetweenEvictionRunsMillis=60000
spring.druid.minEvictableIdleTimeMillis=300000
spring.druid.borrowConnectionTimeout=30000

需要加上下面程式碼:
import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.filter.Filter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.google.common.collect.Lists;

@Configuration
public class DruidConfig {

@ConfigurationProperties(prefix="spring.druid")
@Bean(initMethod="init",destroyMethod="close")
public DataSource dataSource(Filter statFilter) throws SQLException{
	DruidDataSource dataSource = new DruidDataSource();
	dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
	return dataSource;
}

@Bean
public Filter statFilter(){
	StatFilter filter = new StatFilter();
	filter.setSlowSqlMillis(5000);
	filter.setLogSlowSql(true);
	filter.setMergeSql(true);
	return filter;
}


@Bean
public ServletRegistrationBean servletRegistrationBean(){
	return new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
}

}