Spring 2.0 引入了注解支持和注解感知配置选项,可供使用 Java 5(或更高版本)的 Spring 用户利用
通过 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
提供示例的接口和类。我已尽量使其尽可能简单,但又能演示主要功能。我将所有代码和配置都包含在一个“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*,请定义……