【问题标题】:spring 3 annotation dependency injectionspring 3注解依赖注入
【发布时间】:2011-11-06 22:34:45
【问题描述】:

对于一个新的遗留应用程序,我必须使用最新的 Spring 框架 3.x 和 Hibernate 3.x。之前我使用了带有 xml 配置的 Spring IoC。现在我想使用基于注释的 IoC。

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

但我在另一个站点找到了其他一些实现方式: blog

我对用最新技术实现 IoC 的方式感到困惑。 请参考一些好的网站样本。还请分享一些带注释的 IoC 示例代码。

编辑:

Spring 参考文档 3.x 说使用 @Configuration 或 xml 配置,即带有注释 。哪个更好用?为什么?

【问题讨论】:

标签: spring configuration annotations


【解决方案1】:

您最好从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 中定义bean,并使用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
}

【讨论】:

  • 我需要使用 new AnnotationConfigApplicationContext();加载xml文件? xml 文件中只有 bean 声明就足够了?
  • 好的,在我的上下文 xml 文件中,我需要为 IoC 指定 bean id 及其属性吗?
  • 您可以添加: 到您的 context.xml 文件中,让它加载注释。然后使用: 导入所有带注释的类。这不需要任何代码。
【解决方案2】:

【讨论】:

  • @gupta59 谢谢。固定
【解决方案3】:

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

然后,只需在类中使用您想要的任何注释。确保注解构造为它们提供 ID 以供以后引用,即 @Component("mycomponentbean")。

【讨论】:

    【解决方案4】:

    如果有帮助,我已经为这个主题录制了一个视频教程,可在此处(免费)获得:https://www.udemy.com/spring-framework-video-tutorial

    【讨论】:

      猜你喜欢
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 2012-12-23
      相关资源
      最近更新 更多