Spring上下文作为运行时依赖

use*_*306 8 java spring

我对春节文档的这一部分感到困惑.

例如,要创建应用程序上下文并使用依赖项注入来配置应用程序,您的Maven依赖项将如下所示:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.5.RELEASE</version>
        <scope>runtime</scope>
    </dependency> 
</dependencies>
Run Code Online (Sandbox Code Playgroud)

请注意,如果您不需要针对Spring API进行编译,则可以将范围声明为运行时,这通常是基本依赖项注入用例的情况.

我知道JSR 330(DI注释).但你怎么脱离ApplicationContext课堂?如果你与它分离,为什么那么仍然依赖于春天?

例如,如何将快速启动spring-context作为运行时依赖项重写?或者什么是"基本依赖注入用例"?

hei*_*don 5

我认为"基本用例"指的是基于XML的应用程序上下文.该文档说如果您没有在代码中直接使用Spring库,那么您将不必在编译类路径中包含这些库.这是XML配置的情况,因为Spring相关的所有内容都是用XML配置的,因此不会编译.

在您快速启动时,作者正在使用基于注释的应用程序上下文配置,这需要在编译和运行时都包含Spring库.

示例XML配置:http: //www.springbyexample.org/examples/intro-to-ioc-creating-a-spring-application.html

应该只有几个关键点,应用程序代码需要直接访问IoC容器[...].如果您正在开发Web应用程序,则可能根本不需要直接访问IoC容器,因为它将自动处理控制器及其所需的任何bean的实例化.

我并不完全熟悉它,但看起来你也可以使用JSR330建议使用XML配置来使用注释自动装配bean.看到这里.这将允许使用注释,但不需要在编译时配置中包含Spring.