Spring 2.0 引入了注解支持和注解感知的配置选项,Spring 用户在使用 Java 5(或更高版本)进行开发时可以利用这些功能
在 Spring 2.1 中,这种注解驱动的配置主题得到了显著扩展,并且随着我们向 RC1 版本迈进,它将继续发展。事实上,现在可以通过注解来驱动 Spring 的依赖注入。此外,Spring 可以发现应用上下文需要配置的 bean。
本篇博文将作为这些基本功能的教程式介绍,分为 10 个简单易懂的步骤。本周晚些时候我将继续介绍一些更高级的功能和定制选项。如果您对其他配置选项感兴趣,您还应该查看 Spring Java Configuration 项目和这篇博文。
本教程至少需要 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
为示例提供接口和类。我尽量保持简单,同时能够演示主要功能。我将所有代码和配置包含在一个“博客”包中。我鼓励遵循相同的准则,以便示例能够按原样工作;否则,请务必进行必要的修改。首先,
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,请定义……