綦霖
好记性不如烂笔头~ 持续写bug中...
posts - 56,comments - 26,views - 15万

最近搞了一下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类里获取的值) 
哪位大佬有解决办法可以共享一下将感激不尽




 

posted on   綦霖  阅读(7916)  评论(3编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示