netty中spring对象注入失败怎么解决
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本文小编为大家详细介绍"netty中spring对象注入失败怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"netty中spring对象注入失败怎么解决"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2025年01月18日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 staticT 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安全错误
数据库的锁怎样保障安全
广东工业大学网络安全学院招生
Google流数据库
软件开发区入门
云南网络安全电话
串口服务器端口号是什么
数据库服务器应用服务器
易商在线网络技术有限公司
杭州习聚网络技术有限公司好吗
app服务器端怎么测
云服务器装kali
iphone天气没数据库
常规网络安全调试
为什么联接服务器会失败
网络安全需求有哪些
落实好网络安全工作责任
win服务器系统价格
oracle数据库表分区
关系型数据库在第几章
零基础软件开发工程师
网络安全产品招标
台州汽车软件开发公司简介
广电网络技术培训心得体会
工商银行软件开发招聘
佛山市专业的网络安全机构
数据库连接是socket吗
电路设计和嵌入式软件开发
浙江图腾机柜服务器机柜云主机
高中信息技术建立数据库教案
连接服务器失败状态
网络安全员会叫加微信吗