[春季新手]
有一个启用了Spring的服务,它可以完成一些工作。当该服务启动时,它将加载Spring Application上下文,并且每个人都很高兴。
现在,我需要创建一个将由上述服务使用的库,并且我也想对该库包进行Springify。但是,何时/如何初始化该库的应用程序上下文?被困住了!
我认为很多人都必须这样做。最佳做法是什么?
我当时在想,可能是库的入口点接口中的静态块是初始化应用程序上下文的正确位置? (因此,它只能初始化一次)
那是正确的方法吗?甚至上班还是想念我什么?感谢你的帮助。
最佳答案
您可以根据需要提供尽可能多的应用程序上下文xml文件。如果您在网络应用程序中使用该库,
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:context1.xml
classpath:context2.xml
...
</param-value>
</context-param>
基本上,您需要提供相对路径
classpath:<relativepathofcontextfile>
。如果它在一个jar文件中,而您的jar在类路径中,则上述方法适用。
如果它是独立的,则可以使用
ClassPathXmlApplicationContext
。public class SomeClass {
private static final ApplicationContext ac=
new ClassPathXmlApplicationContext("classpath:context1.xml");
public static void main(String[] args) {
MyIntf bean= (MyIntf) ac.getBean("myBean");
bean.myMethod();
}
}