ApplicationContext可以实现Spring Configuration类的自动扫描吗?

时间:2016-03-17 10:51:14

标签: spring spring-boot

我的应用程序在多个maven模块中有多个配置配置类(@configuration)类。 但是,我将使用AnnotationConfigApplicationContext的单个实例来注册这些配置类。

我是否必须手动调用并注册类,如下所示?

ApplicationContext ac = new AnnotationConfigApplicationContext();
ac.register(conf1);
ac.register(conf2);

...

或者我们有办法自动扫描配置类吗? 在ApplicationContext级别寻找类似于componentscan的东西。

2 个答案:

答案 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>