spring注释中的动态属性(@ComponentScan)

时间:2015-02-18 12:58:57

标签: java spring spring-boot

我的课程中有以下弹簧标题

@Service
@EnableAutoConfiguration(exclude = {HibernateJpaAutoConfiguration.class})
@ComponentScan({"com.package1", "com.package2", "com.package3"})
public class SomeContainer { }

您是否有可能将此软件包(" com.package1,2,3等)提取到单独的属性文件中,但是要保持注释驱动样式?

2 个答案:

答案 0 :(得分:1)

上一张海报试图说的是什么,我将澄清这一点。我的主app类看起来像这样:

@Import(AppConfig.class)
public class App implements CommandLineRunner {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);
    }

    public void run(String... args) {
        // Do something
    }
}

Appconfig就像这样:

@Configuration
@ComponentScan(basePackages = "${scan.packages}")
@EnableAutoConfiguration
public class AppConfig {
}

application.properties文件位于src / main / resources文件夹中,自动查找该文件并包含我的scan.packages行:

scan.packages=com.mypackage

如果你从App类的main方法运行它,那么一切都将被正确配置。

希望这有助于某人。

答案 1 :(得分:-1)

尝试将您的属性添加到文件中,例如application.properties,并将它们注入您的配置类

 @Configuration
 @PropertySource("classpath:/application.properties")
 public class ConfigApp { 

 }


 @ComponentScan("${scan.packages}")