我正在使用eclipse中的maven-spring项目,我已声明了以下依赖项:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.0.RELEASE</version>
<scope>runtime</scope>
</dependency>
</dependencies>
根据我的理解,org.springframework.context中的类应仅在运行时可用,而不是在编译时可用。但是我能够在代码中从上面的包导入类而没有任何编译错误(在Eclipse中)。这是我的代码:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloWorld {
public static void main(String args[])
{
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
}
}
在这里,我的基本问题是上面的代码是如何工作的。当我尝试使用ApplicationContext时,它应该给出编译时错误,因为我已经在运行时范围中包含了“spring-context”工件?我的日食在这里做了一些伎俩吗?我在这里错过了什么?感谢
答案 0 :(得分:0)
运行时可能需要也可能不需要编译时依赖项。在编译作用域依赖项的情况下,jar将被复制到您的类路径,因此将在运行时使用。另一方面,您可以使用某种依赖项编译代码,并且在运行时,您可以使用运行时范围的该依赖项的其他实现。