netty中spring对象注入失败怎么解决
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文小编为大家详细介绍"netty中spring对象注入失败怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"netty中spring对象注入失败怎么解决"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2026年11月02日netty中spring对象注入失败怎么解决
本文小编为大家详细介绍"netty中spring对象注入失败怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"netty中spring对象注入失败怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
netty中spring对象注入失败
今天在做项目的时候发现在netty中注入service失败,百度许久后也找不到答案(@Component,@PostConstruct)未起作用,后灵光一现
发现了问题所在
如图:
这些地方都必须通过spring注入才能实现其他依赖注入,之前这里都是采用new的,所以导致spring注入失败
在netty中注入spring成份
前不久,在Netty中使用到数据库数据,由于Netty服务启动后的上下文与 Spring的上下文不同,所以在Netty中获取DAO数据很头痛,无法使用@Autowired注入。
Aware本义就是"自动的",顾名思义Spring自动做了些事情。在此某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器,此时就必须先获取Spring容器,然后借助于Spring容器实现该功能。
为了让Bean获取它所在的Spring容器,可以让该Bean实现ApplicationContextAware接口。
可以通过以下方式
import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component; /** * * @author shilei * * @time 2019年6月19日 下午5:17:50 * * @desc Netty中注入 Spring Autowired */@Componentpublic class ToolNettySpirngAutowired implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (ToolNettySpirngAutowired.applicationContext == null) { ToolNettySpirngAutowired.applicationContext = applicationContext; } } // 获取applicationContext public static ApplicationContext getApplicationContext() { return applicationContext; } // 通过name获取 Bean. public static Object getBean(String name) { return getApplicationContext().getBean(name); } // 通过class获取Bean. public static T getBean(Class clazz) { return getApplicationContext().getBean(clazz); } // 通过name,以及Clazz返回指定的Bean public static T getBean(String name, Class clazz) { return getApplicationContext().getBean(name, clazz); } } 在使用时 可在某业务Handler中添加以下代码:
private static NodeServService nodeServService; static { nodeServService = ToolNettySpirngAutowired.getBean(NodeServService.class);} private static NodeJpaRepository nodeDao; static { nodeDao = ToolNettySpirngAutowired.getBean(NodeJpaRepository.class);}读到这里,这篇"netty中spring对象注入失败怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
对象
容器
功能
数据
文章
上下
上下文
内容
所在
不同
妥当
灵光
特殊
头痛
顾名思义
业务
事情
代码
作用
可以通过
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司起名
西安纸贵互联网科技有限公司
科技互联网技术
善班互联网科技
远拓互联网科技
奔汉互联网科技
卓越科技互联网 招聘
移动互联网科技公司
畅思互联网科技
四川慕妮娅互联网科技有限公司
中和天地互联网科技有限公司
电子商务与互联网科技的关系
互联网安防科技感
陕西云淼互联网科技公司
宁波跨境商互联网科技有限公司
互联网科技新闻
互联网科技职业技能培训学校
互联网对科技影响
上海互联网科技园景观
利用互联网等科技手段
伟宏互联网科技
科技股互联网
金融科技与互联网金融
广州善班互联网科技
贵州叶脉互联网科技有限公司所属行业
互联网科技项目计划书材料类
互联网软件和科技
洛阳共同富裕互联网科技有限公司
中国科技和美国互联网
互联网领先科技成果宣传视频