java - 使用 @ImportResource 注释获取对 ApplicationContext 的引用?

标签 java spring spring-boot

我有以下类(class):

@SpringBootApplication
@ImportResource("classpath:path-to-application-context.xml")
public class SocketMain extends SpringBootServletInitializer {
  public static void main(String [] args) {
     // ...
  }
}

我想访问我的 main 函数中的应用程序上下文,以便我可以获取我定义的 bean 之一。我无法 Autowiring 它,因为您无法 Autowiring 静态变量。有没有办法获取对使用 @ImportResource 注释加载的 applicationContext 的引用?

我的后备方法是在 main 中加载 applicationContext,如下所示:

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("path-to-application-context.xml");`

但我不想加载两次。

提前致谢!

最佳答案

这是在 Spring 中检索应用程序上下文并检索 bean 的方法。这应该放在你的主函数中

ApplicationContext ctx = SpringApplication.run(SocketMain.class, args);
SomeClass sc = ctx.getBean(SomeClass.class);
sc.testRun();

您还应该能够使用@Autowired检索上下文。

@Autowired
private ApplicationContext context;

关于java - 使用 @ImportResource 注释获取对 ApplicationContext 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072486/

相关文章:

java - 用Java编写unicode 0x2

java - Spring + Jackson,要求 double 序列化时尾随 0

java - 如何使用 Spring MVC JSR-303 Validator 将不同的模型类验证为一种形式

java - 如何让用户使用 vaadin 文件下载器下载 zip 文件

spring - java.lang.IllegalStateException:org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration上的错误处理条件

java - 这些类似的 Java 正则表达式之间有什么区别?

java - 对象映射器无法序列化对象类的引用

java - JEE架构问题: Service can inject Service? 或者Service只能注入(inject)Dao?

apache - Thymeleaf 将应用程序上下文添加到 apache 代理后面的应用程序的 url

java - 读取十六进制文件并将其转换为十进制