弹簧中元件扫描的顺序

时间:2017-11-15 10:45:47

标签: java spring spring-mvc

是Spring的新手,已经定义了ApplicaionConfig.java,我在那里放置了属性文件的详细信息。

package com.rao.first;

//
//  import statements
//

@Configuration
@ComponentScan(basePackageClasses = { ApplicationConfig.class  }, basePackages = { "com.rao.first" })
@PropertySources({ 
@PropertySource("file:${webapp.root}/resources/config/application.properties"),
@PropertySource(value = "file:${conf.dir}/someother.properties", ignoreResourceNotFound = true) })
class ApplicationConfig
{
    @Bean
    ServletContextListener logbackConfigListener()
    {
        return new LogbackConfigListener();

    }
}

并定义了一些控制器类。

package com.rao.first.controller;
//
//  import statements
//
@Controller
@RequestMapping(value = "/first")
public class FirstController
{
    private String viewerUrl;

    @Inject
    public FirstController(Environment env)
    {
        this.viewerUrl = env.getProperty("property1");
    }

    //
    //

}

但是在执行ApplicaitonConfig之后,第一个控制器正在执行,因此无法从属性文件中获取数据。

spring-servlet.xml文件配置

<context:component-scan base-package="com.rao.first.view" />
<context:component-scan base-package="com.rao.controller.security" />
<context:component-scan base-package="com.rao.controller" />

请指导我如何设定执行顺序?

1 个答案:

答案 0 :(得分:0)

您可以使用org.springframework.context.annotation.PropertySource注释从属性文件中检索值。

所以你的控制器类可能如下:

root.xpath('string(//div[@class="property-beds"])')

我希望它可以帮助你,再见。