我还没有接触到Spring。我在我的系统中的一个独立java项目中看到了下面的代码。能否帮助我理解下面的代码。我无法在项目中看到spring.xml - 它是否必须存在且缺失?
appContext = new ClassPathXmlApplicationContext(new String[] {
"classpath*:/META-INF/spring.xml",
"classpath*:myapplication-application-context.xml"
});
答案 0 :(得分:8)
classpath*
语法意味着Spring将在类路径中搜索名为/META-INF/spring.xml
和myapplication-application-context.xml
的所有资源,并将它们合并到上下文中。这包括查看项目中的JAR文件,因此主项目文件中可能没有任何可见文件。
答案 1 :(得分:6)
Spring的核心功能围绕ApplicationContext,它是“为应用程序提供配置的中央界面。”此界面由ClassPathXmlApplicationContext实现,它可以帮助您从中获取上下文定义classpath .Hence你指定classpath *。
正如@skaffman所解释的那样,您的应用程序是从上述文件中的上下文定义加载的。即,所有Spring bean都已初始化,并且根据需要执行依赖注入。
如果您处理Web应用程序,Spring会有XmlWebApplicationContext
加载的相应Web应用程序上下文