Java Spring:它从哪里获得ApplicationContext?
我有一个包含以下代码的Spring项目:Java Spring:它从哪里获得ApplicationContext?,java,spring,maven,spring-mvc,web,Java,Spring,Maven,Spring Mvc,Web,我有一个包含以下代码的Spring项目: @Autowired public void setApplicationContext(ApplicationContext ctx) { // Wiring AppContext.setApplicationContext(ctx); } 它设置applicationContext。从调试器中,我可以看到ctx的类型为annotationEmbeddedWebapplicationContext 我试着查看调用堆栈,看看它从哪里得到
@Autowired
public void setApplicationContext(ApplicationContext ctx) {
// Wiring
AppContext.setApplicationContext(ctx);
}
它设置applicationContext
。从调试器中,我可以看到ctx
的类型为annotationEmbeddedWebapplicationContext
我试着查看调用堆栈,看看它从哪里得到这种类型的上下文,而不是其他类型的上下文。但我没能找到它。在此之前的所有调用都是Spring内部调用
这种类型是从哪里来的?这个信息?从pom.xml
还是其他地方
我的相关pom
条目:
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧启动机tomcat
当Spring看到Spring boot starter web
时,它使用那种applicationContext
?您使用的是Spring boot(),这是一种配置和使用Spring应用程序的自以为是的方式。使用boot的优点是,他们的理念是约定优于配置,因此代码很少,您就可以得到很多。这意味着您不需要创建和定义详细的xml配置文件(或java配置文件),因为boot可以为您创建和定义详细的xml配置文件
如果您想覆盖spring boot的某些自动配置,我建议您检查他们的文档:
- 主要文件:
- 自定义自动功能:
ApplicationContext
是一个Spring类。这些内部呼叫是您应该关注的。你还没有告诉我们什么类有这个setApplicationContext
方法。哦,这就是我的情况,对吗?这个项目使用这个spring引导来简化很多配置。取舍不如传统方式灵活。我认为这足够灵活,如果您需要更改spring boot提供的一些(自动)配置,您可以这样做。