Eu tenho a configuração do projeto usando Spring inicialização que carrega componentes individuais na inicialização. Cada pacotes individuais contêm sua própria fonte de dados, processos, etc. I pode simplesmente usar isso e ele funciona muito bem
@SpringBootApplication(scanBasePackages = {
"com.package1",
"com.package2",
"com.package3"
})
public class Application extends SpringBootServletInitializer{
public static void main(String[] args){
SpringApplication.run(Application.class,args)
}
}
Mas atualmente, o número de projetos indiviual estão ficando maiores. É possível colocar a lista dos componentes / pacotes para varredura em um cofre arquivo de propriedades ou primavera externo? Não tenho certeza como recuperá-lo, e é possível para recuperar as propriedades antes da inicialização?
Editar:
Atualmente eu tentei isso:
@Import(AppConfig.class)
public class Application extends SpringBootServletInitializer{
public static void main(String[] args){
SpringApplication.run(Application.class,args)
}
}
@Configuration
@ComponentScan(basePackages = {$app.packages})
@EnableAutoConfiguration
public class AppConfig {
}
//in my properties file
app.packages = ["com.package1","com.package2","com.package3"]
mas não o seu trabalho
Você está no caminho certo, mas alguns pequenos erros, especificar os pacotes de comum separados em yml
ou properties
arquivo
app.packages = com.package1,com.package2,com.package3
Em seguida, usar o Spring Expression Language na @ComponentScan
anotação
@ComponentScan(basePackages = {"${app.packages}"})