我的应用程序在多个maven模块中有多个配置配置类(@configuration)类。 但是,我将使用AnnotationConfigApplicationContext的单个实例来注册这些配置类。
我是否必须手动调用并注册类,如下所示?
ApplicationContext ac = new AnnotationConfigApplicationContext();
ac.register(conf1);
ac.register(conf2);
...
或者我们有办法自动扫描配置类吗? 在ApplicationContext级别寻找类似于componentscan的东西。
答案 0 :(得分:1)
有两种方法可以做到。使用AnnotationConfigApplicationContext上的方法进行扫描,例如
ApplicationContext ac = new AnnotationConfigApplicationContext();
ac.scan("com.sample.service" , "com.sample.dao");
ac.refresh();
或者使用register方法注册至少一个@Configuration类,而register方法又使用@ComponentScan来包含来自特定位置的类
答案 1 :(得分:0)
您可以在web.xml中添加以下代码。 context-param上的param-value是您定义配置文件位置的位置。如果有多个位置,则可以以逗号分隔的方式添加。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/location/of/configfiles</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>