Spring Boot启动报错:找不到JdbcTemplate类型的Bean
问题分析与解决方案
核心问题
你在@SpringBootApplication注解中手动排除了DataSourceAutoConfiguration.class,这直接阻断了Spring Boot的数据源自动配置流程。JdbcTemplate的自动创建依赖容器中存在的DataSource Bean,没有DataSource就无法生成JdbcTemplate,因此注入时会提示找不到该Bean。
修复步骤
1. 移除数据源自动配置的排除项
修改Main类的@SpringBootApplication注解,去掉exclude参数:
@RestController @SpringBootApplication public class Main { @Autowired private MyBean bean; @RequestMapping("/") String home() { return "Hello World!"; } public void getNames() { bean.getNames(); } public static void main(String[] args) { SpringApplication.run(Main.class, args); } }
2. 修正SQLite数据库路径配置
resources目录下的文件属于类路径资源,原配置中的file:前缀会让系统尝试从文件系统读取,改为classpath:前缀才能正确加载:
spring.datasource.url=jdbc:sqlite:classpath:mydb.db spring.datasource.driver-class-name=org.sqlite.JDBC
3. 确认依赖完整性
你的依赖配置已经包含spring-boot-starter-jdbc(负责JdbcTemplate自动配置)和sqlite-jdbc(SQLite驱动),无需额外调整。如果后续出现版本兼容问题,可以尝试升级sqlite-jdbc到最新稳定版。
验证逻辑
移除排除项后,Spring Boot会自动读取application.properties中的数据源配置创建DataSource Bean;spring-boot-starter-jdbc会基于该DataSource自动生成JdbcTemplate Bean,此时MyBean的构造方法就能正常注入JdbcTemplate。
内容的提问来源于stack exchange,提问作者GreasyJam
相关产品推荐
相关产品推荐

