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

云南网站备案难吗网站的发展历史

云南网站备案难吗,网站的发展历史,做网站内容来源,开发游戏app需要多少钱目录 根本原因:WebSocket 类不是由 Spring 管理的 Bean 实例 解决方案:手动从 Spring 容器中获取 Bean 1. 创建 Spring 上下文工具类: 2. 在 WebSocket 中使用: 虽然加上了 Component,但 在 WebSocket 的生命周期回…

目录

根本原因:WebSocket 类不是由 Spring 管理的 Bean 实例

解决方案:手动从 Spring 容器中获取 Bean

1. 创建 Spring 上下文工具类:

 2. 在 WebSocket 中使用:


虽然加上了 @Component,但 在 WebSocket 的生命周期回调方法中使用 @Autowired 注入其他 Bean 时会失败,这是因为:

根本原因:WebSocket 类不是由 Spring 管理的 Bean 实例

尽管你加了 @Component,Spring 确实会把这个类作为一个 Bean 注册到容器中。但是,Java 的 WebSocket API(JSR-356)在创建 @ServerEndpoint 对应的类实例时,并不是通过 Spring 容器来创建的,而是由底层的 WebSocket 容器(如 Tomcat、Jetty)直接 new 出来的。

也就是说:

  • Spring 创建了一个 WebSocketServer 实例(作为 Bean)
  • WebSocket 容器又自己 new 了一个 WebSocketServer 实例(用于处理连接)
  • 这个 new 出来的实例并没有被 Spring 管理,所以里面的 @Autowired 字段是 null
@Component
@ServerEndpoint("/webSocket/{userId}")
public class WebSocketServer {@Autowiredprivate SomeService someService; // 会是 null@OnOpenpublic void onOpen(...) {someService.doSomething(); // NullPointerException!}
}

解决方案:手动从 Spring 容器中获取 Bean

你可以通过一个工具类,从 Spring 容器中手动获取你需要的 Bean。

1. 创建 Spring 上下文工具类:

​
@Component
public class SpringContextUtils implements ApplicationContextAware {private static ApplicationContext context;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) {context = applicationContext;}public static <T> T getBean(Class<T> beanClass) {return context.getBean(beanClass);}public static <T> T getBean(String name, Class<T> beanClass) {return context.getBean(name, beanClass);}
}​

 2. 在 WebSocket 中使用:

@Component
@ServerEndpoint("/webSocket/{userId}")
public class WebSocketServer {@OnOpenpublic void onOpen(Session session, @PathParam("userId") String userId) {SomeService someService = SpringContextUtils.getBean(SomeService.class);someService.doSomething();}
}

http://www.dtcms.com/wzjs/815033.html

相关文章:

  • 电商网站更适合wordpress数据库版本
  • 做网站用哪个预装系统信誉好的免费网站建设
  • 网站死链处理网站建设属于广告费么
  • 网站的建设是什么深圳网站营销推广公司电话
  • 响应式环保网站深圳宝安
  • 商城网站建设哪家好公众号制作视频教学视频
  • 成都手机网站建设开发哪些公司用.cc做网站
  • 徐州网站建设方案咨询做网站教程
  • 遵义网站建设有限公司国际战事最新消息
  • 网站编辑兼职怎么用云校建设学校网站
  • 相城高端网站建设泸州市建设工程管理局网站
  • 建设中网站网页访客升级
  • 常州创新优典网站建设兰州网站seo哪家公司好
  • h5做怎么做微网站关键字网站采集
  • 网站做接口做seo需要会网站开发吗
  • 北京网站建设一条龙北京定制网站价格
  • 网站关键词排名优化电话WordPress如何导入本地插件
  • 济南企业建站平台做分类信息网站模板
  • 来年做啥网站致富阿里云 建设网站
  • 电脑记事本做复杂网站新浪云WordPress 主题
  • 网站建设邮箱企业建站公司服务
  • 网站版式设计吴江区建设工程招标网站
  • 网站开发费税率是多少钱九一免费版安装包下载
  • 自己做内部网站wordpress更新要ftp
  • jquery 单页网站outlook企业邮箱怎么申请
  • 移动端网站怎么做做企业网站能赚钱吗?
  • 诚信网站备案中心为什么明明有网却打不开网页
  • 泗洪县建设局网站网站运营主要是做什么
  • seo网站排名优化公司哪家好为wordpress开发app
  • 网站建设的工作网络教室网站建设