当前位置: 首页 > news >正文

Spring Boot Service注入为null mapper注入为null @Component注解下@Value获取不到值 WebsocketServer类里无法注入service...

最近搞了一下websocket前台(这个网上有很多的教程这里就不班门弄斧啦) 以及前后台的交互 和后台的bug(搞了两天) 也是状态频发 bug不断 下面说一说问题

Websocket主类里面无法注入Service 从而导致Service里Mapper也注入为null  具体原因的还是因为websocket主类里的一个

@Component 的注解 他的作用呢就是实例化 但是他是项目启动时就实例化的 这样 后续的注入就会注入不进去 后来自作聪明在主类里new的一个service 进去是进去了

但是在service进mapper的时候 mapper又注入不进去了 这次注入不进去的原因就是因为你这个service是new出来的所以无法注入 还是要从根本上及决问题啊;;;

    
@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:
public static void main(String[] args) {
	SpringApplication springApplication = new SpringApplication(WebsocketApplication.class);
	ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);
	WebsocketServer.setApplicationContext(configurableApplicationContext);
}
 
 

  WebsocketServer:

  

    @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/yangchengdebokeyuan/p/10621788.html

相关文章:

  • day27T2改错记
  • 《深度学习入门基于Python的理论与实现》PDF及代码+《21个项目玩转深度学习》PDF及代码+原理到实践总结...
  • 一些常用的正则表达式示例
  • C++学习(三十四)(C语言部分)之 链表
  • RIpng配置(GNS3)(第九组)
  • halcon预处理函数
  • [博弈论]
  • 一个正在读本科的计院学生
  • 排序算法之快速排序QuickSort
  • CSS中一个冒号和两个冒号有什么区别
  • MSF内网渗透 扫描模块
  • [转帖]安德斯·海尔斯伯格
  • [转帖]Linux分页机制之概述--Linux内存管理(六)
  • Linux的远程连接工具:SSH的安装
  • Spring Reference
  • ES6指北【2】—— 箭头函数
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • HashMap ConcurrentHashMap
  • Linux gpio口使用方法
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Python_OOP
  • Redis中的lru算法实现
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring Cloud中负载均衡器概览
  • Terraform入门 - 3. 变更基础设施
  • Vue.js源码(2):初探List Rendering
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 对超线程几个不同角度的解释
  • 反思总结然后整装待发
  • 老板让我十分钟上手nx-admin
  • 嵌入式文件系统
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​人工智能书单(数学基础篇)
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (2.2w字)前端单元测试之Jest详解篇
  • (70min)字节暑假实习二面(已挂)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (超详细)语音信号处理之特征提取
  • (黑马C++)L06 重载与继承
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .net MVC中使用angularJs刷新页面数据列表
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [ C++ ] STL_list 使用及其模拟实现
  • [ linux ] linux 命令英文全称及解释
  • [20171106]配置客户端连接注意.txt
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • [iOS]-NSTimer与循环引用的理解
  • [J2ME]url请求返回参数非法(java.lang.illegalArgument)
  • [leetcode]Flatten Binary Tree to Linked List
  • [NISACTF 2022]level-up