SpringBoot启动失败的解决方法:A component required a bean of type ‘xxxxxxx‘ that could not be found.
作者:小花皮猪
问题描述
今天写了一个MD5加密加盐工具类,运用到实际业务代码中缺报错了,内容如下:
***************************
APPLICATION FAILED TO START
***************************Description:
A component required a bean of type 'com.wyh.util.SaltMD5Util' that could not be found.
Action:
Consider defining a bean of type 'com.wyh.util.SaltMD5Util' in your configuration.
分析问题
根据错误日志不难发现,其实是因为组件没有被找到。因为这个工具类是我自己写的。
然后我就去检查代码,最终发现,我把这个工具类以注解的形式注入进来并使用
但是,这个工具类里面,我没有标明这个工具类是一个bean文件。所以项目扫描不到,就报了错。
解决问题
想要解决这种问题也十分的简单,目前想到两种方式
不注入bean的方式
我们可以换种思路,不注入bean文件,直接通过工具类下的方法直接调用
使用@Component
如果觉得直接调用工具类下的方法不舒服,非要使用bean的方式,name可以使用@Component注解
直接修饰类文件即可。
注意,不要引用错哦,用的是下面这个注解
import org.springframework.stereotype.Component;
再次重启解决问题。
扩展:@Component解释说明
@Component是spring中的一个注解,它的作用就是实现bean的注入。在Java的web开发中,提供3个@Component注解衍生注解(功能与@component一样)分别是:
1、@Controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层。
2、@Service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理
3、@Repository(实现dao访问) 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
而@Component泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
到此这篇关于解决SpringBoot启动失败:A component required a bean of type ‘xxxxxxx‘ that could not be found.的文章就介绍到这了,更多相关SpringBoot启动失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!