2011-08-30 122 views
4

对于新的遗留应用程序,我必须使用最新的Spring框架3.x与Hibernate 3.x.之前我用xml配置使用Spring IoC。现在我想去基于注释的IoC。spring 3注解依赖注入

玫瑰印度下面的链接显示使用注释没有XML文件。 rose india

但我发现在另一个网站上实施的一些其他的方式: blog

我很困惑在这里与最新的技术来实现的IoC哪种方式。 请参考一些好的网站进行举例。也请分享一些示例代码IoC与注释。

编辑:

Spring参考文献3.x的说使用@Configuration或XML配置即具有注释<上下文:注解的配置/>。哪一个更好用?为什么?

+4

忽略玫瑰印度的东西。这绝对是可怕的。 – skaffman

+0

我在这里维护一个操作示例:http://tshikatshikaaa.blogspot.nl/2012/08/spring-ioc-container-with-annotations.html – JVerstry

回答

2

你最好打赌是从Spring 3.0 Documentation开始。如果您已经熟悉使用xml配置的依赖注入,请查看Section 3.9 Annotation-based container configuration中Spring的注释支持。应该有足够的细节来帮助你开始。

如果这不是一个WebApp,并且您需要自己加载ApplicationContext,则应该查看Section 3.11 Java-based container configuration。本节详细介绍如何使用xml配置创建ApplicationContext

我会建议使用@Autowired注解接线与@Component标注为ApplicationContext中定义豆,并使用由AnnotationConfigApplicationContext提供的scan(String)方法来查找所有注释组件:

public static void main(String[] args) { 
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); 
    ctx.scan("your.package.here"); 
    ctx.refresh(); 
    MyService myService = ctx.getBean(MyService.class); 
    //use myService 
} 
+0

我需要使用新的AnnotationConfigApplicationContext();加载xml文件?在XML文件中只有bean声明是足够的? – TechFind

+0

我已经更新了我的答案和其他一些信息。 –

+0

好的,在我的上下文xml文件中是否需要为IoC指定bean id和它的属性? – TechFind

1

我建议用添加去:<context:annotation-config />添加到您的xml上下文文件以使其加载注释。然后使用:<context:component-scan base-package="my.package" />导入所有注释的类。这不需要任何代码,而且非常干净。您还可以将包含/排除过滤器添加到xml文件中的扫描中。

然后,只需在课程中使用任何注释。确保注解构造为他们提供稍后参考的ID,即@Component(“mycomponentbean”)。