最近搞了一下websocket前台(这个网上有很多的教程这里就不班门弄斧啦) 以及前后台的交互 和后台的bug(搞了两天) 也是状态频发 bug不断 下面说一说问题、
Websocket主类里面无法注入Service 从而导致Service里Mapper也注入为null 具体原因的还是因为websocket主类里的一个
@Component 的注解 他的作用呢就是实例化 但是他是项目启动时就实例化的 这样 后续的注入就会注入不进去 后来自作聪明在主类里new的一个service 进去是进去了
但是在service进mapper的时候 mapper又注入不进去了 这次注入不进去的原因就是因为你这个service是new出来的所以无法注入 还是要从根本上及决问题啊;;;
1 2 3 4 5 6 7 8 9 | @component (把普通pojo实例化到spring容器中,相当于配置文件中的 < bean id="" class=""/>) 泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。 案例: < context:component-scan base-package=”com.*”> 上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。 共同点:被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理 |
解决方案: 注入不进去的根本原因还在于是加载主类的时候没有实例化到service 所以我们在Application 启动类里加入ConfigurableApplicationContext
下面附上application、websocket上的代码供大家参考:
Application:
1 2 3 4 5 | public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(WebsocketApplication. class ); ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args); WebsocketServer.setApplicationContext(configurableApplicationContext); } |
WebsocketServer:
1 2 3 4 5 6 7 8 9 10 11 12 | @Autowired private WebsocketService websocketService; private static ApplicationContext applicationContext; public static void setApplicationContext(ApplicationContext applicationContext){ WebsocketServer.applicationContext = applicationContext; } //需要用到service的方法内 websocketService=applicationContext.getBean(WebsocketService. class ); |
之后就是@Value注解在本WebsocketServer类里获取不到我在application.yml里配置的值 试了好多方法都不行(后来在ServiceImpl类里获取的值)
哪位大佬有解决办法可以共享一下将感激不尽
本文来自博客园,作者:綦霖,转载请注明原文链接:https://www.cnblogs.com/yc-weblog/p/10621788.html
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!