错误:java
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.spring
解决方案:sql
在运行类中加入以下代码,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;
- }
- }