栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

解决sprinboot非Controller或Service自动注入失败

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解决sprinboot非Controller或Service自动注入失败

解决sprinboot非Controller或Service自动注入失败 1.工具类中添加@Componet注解

2.init添加@PostConstruct注解

3.使用



4.为什么可以这样做 4.1@Component

@Service、@Repository、@Controller、@Component都是将组件放到spring中进行管理

@Component注解表示带注解的类是一个“组件”,在类路径扫描时,这个类就是自动检测的候选类。

区别时@Service通常用于持久层,@Repository用于业务层、@Controller用于控制层

而文中工具类不属于任何一层,则可以使用@Component注入到spring中

相当于在xml文件中


4.2@PostConstuct

@PostConstuct修饰的方法会在服务器加载servlet的时候运行

那么要将A对象注入到B对象,就要先生成A对象

如果B类中某个成员变量a被@Autowired标注,@Autowired发生在B的构造方法执行完后自动注入

所以如果未加@PostConstruct注解,当前工具类就会先执行工具类的构造函数再去执行@Autowired,此时注入的对象已被容器销毁,自然注入时会出现null

类的构造函数再去执行@Autowired,此时注入的对象已被容器销毁,自然注入时会出现null

@PostConstruct注解的方法则是将注入的对象由静态对象进行管理,所以要将要注入的对象改为静态对象,程序启动时在Spring Bean初始化时执行并保留,防止被释放

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/489804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号