Spring:它在哪里获得ApplicationContext?

时间:2015-09-13 23:08:22

标签: java spring maven spring-mvc web

我有一个Spring项目,包含以下代码:

@Autowired
public void setApplicationContext(ApplicationContext ctx) {
    // Wiring
    AppContext.setApplicationContext(ctx);
}

设置applicationContext。从调试器中我可以看到ctx的类型为AnnotationEmbeddedWebApplicatoinContext

我试着查看调用堆栈以查看它获取此类上下文的位置而不是其他类型。但我没跟踪它。之前的所有调用都是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>

当Spring看到spring-boot-starter-web时,它会使用那种applicationContext吗?

1 个答案:

答案 0 :(得分:2)

您正在使用spring-boot(http://projects.spring.io/spring-boot/),这是配置和使用spring应用程序的一种看法。使用启动的优势在于,他们的理念是对配置的约定,因此您可以获得很多代码。这意味着您不需要创建和定义详细的xml配置文件(或java配置文件),因为启动会为您执行此操作。

如果你想覆盖一些spring-boot的自动配置,我建议你查看他们的文档: