如何结合Spring XML和注释配置文件?

日期: 2010-11-16 作者:Jason Todhunter翻译:张培颖 来源:TechTarget中国 英文

Spring 3提供了使用基于Java的配置文件的功能,正如大家都讨厌使用庞大的XML配置文件。然而,这也没必要演变成一场“注释vs.XML”的讨论大战,我们可以轻松地将二者结合。   如果你使用@Configuration文件,你可以同时通过简单地添加@ImportResource注释,负载一个XML配置文件。meanbeans.xml的spring xml配置文件中的注释是基于spring applicationcontext对象的注释,如下所示: 以下是引用片段:@Configuration @ImportResource(“classpath:meanbeans.xml&#……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

Spring 3提供了使用基于Java的配置文件的功能,正如大家都讨厌使用庞大的XML配置文件。然而,这也没必要演变成一场“注释vs.XML”的讨论大战,我们可以轻松地将二者结合。

  如果你使用@Configuration文件,你可以同时通过简单地添加@ImportResource注释,负载一个XML配置文件。meanbeans.xml的spring xml配置文件中的注释是基于spring applicationcontext对象的注释,如下所示:

以下是引用片段:
@Configuration
@ImportResource("classpath:meanbeans.xml")
class JConfig { }

  因此,如果你已经得到一个名为FooBean的类和一个名为BarBean的类,XML文件中已经有一个bean配置好了,其他的在Java @Configuration文件中。你可以将二者同时从单一beanFactory中放到应用中去。

以下是引用片段:
class FooBean { }
class BarBean { }

  得到如下结果:

以下是引用片段:
public class XmlAndAnnotations {
  public static void main(String args[]) {
    AnnotationConfigApplicationContext beanFactory =
    new AnnotationConfigApplicationContext(JConfig.class);
      //new ClassPathXmlApplicationContext("meanbeans.xml");
    System.out.println(beanFactory.getBean("fooBean"));
    System.out.println(beanFactory.getBean("barBean"));
  }
}

  注意如何从beanFactory 中引入fooBean和barBean,而不管两个Bean是否在不同的配置源中配置?下面是完整的基于Java的配置文件,明确描述了确切的fooBean:

以下是引用片段:
@Configuration
@ImportResource("classpath:meanbeans.xml")
class JConfig {
  @Bean()
  public FooBean fooBean() {return new FooBean();}
}

  下面就是描述barBean的meanbeans.xml文件:

以下是引用片段:
<beans 






xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
default-autowire="autodetect">
  <bean id="barBean" class="com.mcnz.spring.BarBean" />
</beans>

  就是这样啦,当XmlAndAnnotations主方法类开始运行,fooBean和barBean将从两个分开的Spring配置源中装载。

翻译

张培颖
张培颖

云计算网站编辑

相关推荐