错误:
Description:
Field jdbcTemplate in com.gwd.dao.impl.IUserDaoImpl required a bean of type 'org.springframework.jdbc.core.JdbcTemplate' that could not be found.
- Bean method 'jdbcTemplate' not loaded because @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans
Action:
Consider revisiting the conditions above or defining a bean of type 'org.springframework.jdbc.core.JdbcTemplate' in your configuration.
解决方案:
在运行类中加入如下代码,DateSource这块看自己的数据源,我这边用的是阿里的druid
- package com.gwd;
- import javax.sql.DataSource;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.context.annotation.Bean;
- import org.springframework.core.env.Environment;
- import com.alibaba.druid.pool.DruidDataSource;
- @SpringBootApplication
- public class SpringBootTestApplication {
- public static void main(String[] args) {
- SpringApplication.run(SpringBootTestApplication.class, args);
- }
- @Autowired
- private Environment env;
- //destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.
- @Bean(destroyMethod = "close")
- public DataSource dataSource() {
- DruidDataSource dataSource = new DruidDataSource();
- dataSource.setUrl(env.getProperty("spring.datasource.url"));
- dataSource.setUsername(env.getProperty("spring.datasource.username"));//用户名
- dataSource.setPassword(env.getProperty("spring.datasource.password"));//密码
- dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
- dataSource.setInitialSize(2);//初始化时建立物理连接的个数
- dataSource.setMaxActive(20);//最大连接池数量
- dataSource.setMinIdle(0);//最小连接池数量
- dataSource.setMaxWait(60000);//获取连接时最大等待时间,单位毫秒。
- dataSource.setValidationQuery("SELECT 1");//用来检测连接是否有效的sql
- dataSource.setTestOnBorrow(false);//申请连接时执行validationQuery检测连接是否有效
- dataSource.setTestWhileIdle(true);//建议配置为true,不影响性能,并且保证安全性。
- dataSource.setPoolPreparedStatements(false);//是否缓存preparedStatement,也就是PSCache
- return dataSource;
- }
- }