在我的SpringBoot
应用程序中,我有一个服务定义为:
@Service
public class JdbcService {
@Autowired
JdbcTemplate jdbcTemplate;
@Autowired
public DataSource myDatabase;
public void run() {
System.out.println(">>run()");
jdbcTemplate.setDataSource(stagingDatabase);
jdbcTemplate.execute("INSERT SAMPLETABLE1 (STRING1, STRING2) VALUES ('TEST1', 'TEST2)");
System.out.println("<<run()");
}
}
我得到:
Description:
Field jdbcTemplate in com.myproject.services.JdbcService required a bean of type 'org.springframework.jdbc.core.JdbcTemplate' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.jdbc.core.JdbcTemplate' in your configuration.
当我添加@ComponentScan(basePackages="com.myproject")
时
到这个包中定义的SpringBootApplication中,我也得到了它。
build.gradle包括:
compile("org.springframework.boot:spring-boot-starter-jdbc")
有什么想法吗?
答案 0 :(得分:0)
我必须将其定义为Bean。我还对其进行了重命名,以使其更加清晰。
@Configuration
public class DatasourceConfiguration {
@Bean
JdbcTemplate dwJdbcTemplate() {
JdbcTemplate dwDatasource = new JdbcTemplate(dwDatasource());
return dwDatasource;
}
}