您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring @Autowired在新线程上不起作用

Spring @Autowired在新线程上不起作用

Spring仅自动装配其创建的组件。您正在调用新的TaskJob(),Spring不知道该对象,因此不会进行自动装配

解决方法是,可以直接调用应用程序上下文。首先获取应用程序上下文的句柄。这可以通过为应用程序上下文本身添加@Autowire来完成。

@Autowired
private ApplicationContext applicationContext;

创建TaskJob时,要求应用程序上下文进行自动装配

TaskJob taskJob = new TaskJob(name, source);
applicationContext.getAutowireCapablebeanfactory().autowireBean(taskJob);

另外,如果您有任何带@postconstruct注释的方法需要触发,则可以调用initializeBean()

applicationContext.getAutowireCapablebeanfactory().initializeBean(taskJob, null);
Java 2022/1/1 18:28:44 有581人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶