springboot项目中调用第三方jar包中的类时报错 — 没有注入类的2种解决方法
使用场景:将一些公共的方法封装成了一个jar包,在其他项目中进行引用的时候报错
报错原因:bean没有注入,引进来的jar包没有被spring管理
因为这两个类没有被@Service,@Repository等类注解,如果我们想用@Autowired注入会报错
在项目中注入引用的jar包中的UserService类时报错
@Autowired public UserService userService;
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.lib.user.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}
报错原因:bean没有注入,因为UserService类没有被@Service,@Repository等类注解,所以我们使用@Autowired注入会报错
解决方法1:可以新建一个UserServiceConfig类,在里面获得我们想要注入的第三方jar包的类,通过@Configuration注解这个Config类,在方法上注解@Bean,这样我们在用@Autowired注解注入就可以了
@Configuration public class UserServiceConfig { @Bean UserService getUserService(){ UserService userService = new UserService(); return userService; } }
解决方法2:在主启动类上加入@ComponentScan("/")
//手动加上@ComponentScan注解并指定那个bean所在的包
//@ComponentScan 的作用就是根据定义的扫描路径,把符合扫描规则的类装配到spring容器中
@ComponentScan(basePackages={"com.util.user"}) public class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication .class, args); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】