当前位置: 首页 > 知识库问答 >
问题:

spring autowiring不能从非spring托管类运行

庾鸿飞
2023-03-14

谢了。

共有1个答案

蒋斯伯
2023-03-14

您可以使用这种方式在非spring bean类中使用spring bean

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

@Component
public class ApplicationContextUtils implements ApplicationContextAware {
     
      private static ApplicationContext ctx;
     
      @Override
      public void setApplicationContext(ApplicationContext appContext) {
        ctx = appContext;
      }
     
      public static ApplicationContext getApplicationContext() {
        return ctx;
      }
}

现在可以通过getApplicationContext()这个方法获得applicationcontext对象。

从applicationcontext中可以获得如下所示的spring bean对象:

ApplicationContext appCtx = ApplicationContextUtils.getApplicationContext();
String strFromContext = appCtx.getBean(beanName, String.class);
 类似资料:
  • 问题内容: 我使用Spring boot + JPA,启动服务时遇到问题。 这是Application.java文件, 我使用UCp进行连接池,下面是DataSource配置, UserDetailsService Implementation, Service layer implementation, The repository class, @Repository Entity class

  • 我使用spring boot+JPA,在启动服务时遇到了一个问题。 下面是application.java文件, 我使用UCp进行连接池,数据源配置如下所示, UserDetailsService实现, 服务层实现, repository类, 实体类, WebSecurityConfig类, 这些包如下所示, 类在-中 类在-中 实体类在- 服务类在- 控制器在- 存储库类在-中 在-中 谢谢

  • 当我运行我的应用程序时,我收到一个错误。 应用程序结构 结构 pom.xml RestartApplication.java MvcConfig WebSecurityConfig 身份验证控制器(显示欢迎页面) 博客控制器 主控制器 注册控制器 邮政 角色 用户 后存储库 用户报告 我试图使用@EnableJpaRepositories和@EntityScan修复它,但这无济于事。在我的MySQ

  • 我正在尝试运行一个非常简单的Spring Boot应用程序,但是我得到以下错误消息: 下面是我的主要应用程序类代码: 下面是Todo类: 我尝试将相应的包名添加到我的@ComponentScan注释中,并尝试将@Component注释添加到我的Todo类中,但都没有奏效。

  • 问题内容: 看来我们使用Quartz-JDBCJobStore以及Spring,Hibernate和Websphere的实现抛出了非托管线程。 我读了一些书,发现IBM的一篇技术文章指出将Quartz与Spring结合使用会导致这种情况。他们提出使用CommnonJ解决此问题的建议。 我进行了一些进一步的研究,到目前为止,我所看到的唯一示例都处理了不在数据库中的旧JobStore计划。 因此,我想

  • 我打开了快照中包含MyApplicationJobDTO的jar,并验证了该文件是否存在。 在运行时,java似乎找不到该类,即使该类在那里。我不认为我应该向java类路径添加任何内容,因为jar位于快照jar中。我被困住了,不确定为什么我会得到运行时错误。 用其注释初始化