netty中spring对象注入失败怎么解决
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本文小编为大家详细介绍"netty中spring对象注入失败怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"netty中spring对象注入失败怎么解决"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
东莞市优镨网络技术有限公司
数据库韩顺平视频教程
滨州平台软件开发公司
服务器管理口ip丢失
数据可视化软件开发工具
数据库中三表链接的顺序
网站app怎么转移到服务器
注意网络安全的图画怎么画
软件开发行业了解
开微商城要租服务器吗
软件开发包括几个组
服务器交换机防火墙怎么连接的
长生诀 数据库密码
广发银行 软件开发 待遇
数据库书本
华丰科技互联网
php向数据库添加记录
网络安全绘画比赛推文
操作系统和数据库安全问题
选择好的分布式数据库系统
广州苹果手机软件开发
荣耀系统服务器在哪里
南京麻将游戏软件开发
软件开发工作室要多少钱
软件开发 自主
软件开发的下一个十年
麻将软件开发要多少钱
有网络安全大赛这个职业吗
耕地质量等级数据库建库标准
技能计算机网络技术考试