Spring 2.0 引入了注释支持和基于注释的配置选项,使用 Java 5(或更高版本)进行开发的 Spring 用户可以利用这些选项。
借助 Spring 2.1,基于注释的配置这一主题得到了显著扩展,并且随着我们向 RC1 版本的进展将继续发展。事实上,现在可以通过注释来驱动 Spring 的依赖注入。此外,Spring 可以发现应用程序上下文中需要配置的 bean。
这篇博文将以教程的形式,通过 10 个简单易懂的步骤介绍基本功能。本周晚些时候,我将继续介绍一些更高级的功能和自定义选项。如果您对其他配置选项感兴趣,还可以查看Spring Java 配置项目和这篇博文。
本教程至少需要 Java 5,推荐使用 Java 6(否则在步骤 1 的最后有一个单独的要求)。
步骤 1
下载spring-framework-2.1-m1-with-dependencies.zip。解压后,您将在 'dist' 目录中找到 spring.jar 和 spring-mock.jar。将它们添加到您的 CLASSPATH,以及以下文件(显示的路径相对于解压后的 2.1-m1 存档的 'lib' 目录):
- asm/asm-2.2.3.jar
- asm/asm-commons-2.2.3.jar
- aspectj/aspectjweaver.jar
- hsqldb/hsqldb.jar
- jakarta-commons/commons-logging.jar
- log4j/log4j-1.2.14.jar
(注意:如果您没有运行 Java 6,则还需要添加 j2ee/common-annotations.jar)
步骤 2
提供示例的接口和类。我已经尽可能地简化了它,但仍然能够演示主要功能。我将所有代码和配置都包含在一个名为 "blog" 的包中。我建议遵循相同的准则,以便示例按原样工作;否则,请确保进行必要的修改。首先,是
GreetingService 接口
public interface GreetingService {
String greet(String name);
}
然后,是一个简单的实现
public class GreetingServiceImpl implements GreetingService {
private MessageRepository messageRepository;
public void setMessageRepository(MessageRepository messageRepository) {
this.messageRepository = messageRepository;
}
public String greet(String name) {
Locale locale = Locale.getDefault();
String message = messageRepository.getMessage(locale.getDisplayLanguage());
return message + " " + name;
}
}
由于服务依赖于MessageRepository,因此定义……