使用Java注释重写Spring配置而不是xml for import语句使用SpEl

时间:2016-12-06 12:25:57

标签: java spring

我有使用xml配置的旧Spring项目。 我想使用java annotations重写此配置(出于某些原因)。 在这个xml配置中,我有这个令人毛骨悚然的代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns....>
    <!-- ... -->
    <import resource="classpath:/spring/${service.loader:service}-loader.xml" />
    <!-- ... -->
</beans>

如何使用java注释重写此导入语句?

@Configuration
@Import({
     // TODO What do I need write here?
})
public class SpringConfig {
     // ...
}

更新

注意:我想重写所有xml文件,我需要导入java类(来自属性或默认)。 我想我需要条件陈述。

3 个答案:

答案 0 :(得分:3)

@Configuration
public class Loader {
  /*configurations in classpath:/spring/${service.loader:service}
  -loader.xml file */

}

@Configuration
@Import({Loader.class})
public class SpringConfig {
     // ...
}

答案 1 :(得分:0)

您可能想要从基于xml的配置中导入,您可以使用以下标记在基于注释的弹簧配置中导入资源。

@ImportResource("/spring/${service.loader:service}-loader.xml")

但是,如果您要将每个上下文xml转换为基于@Conguration的相应注释,那么您应该使用以下标记

@Import(OtherConfiguration.class)

答案 2 :(得分:0)

如果你使用spring-boot,那么你可以做这样的事情

@SpringBootApplication
@ImportResource("classpath:myconfig.xml")
public class MyClasss{

   public static void main(String[] args) {
      SpringApplication.run(Application.class, args); //Up and running
   }

}