注意:此文章已于 2007 年 5 月 31 日更新,以反映 2.1-M2 正式版本的现状。
两周前,我 写了一篇博客,介绍了 Spring 2.1 的新基于注释的依赖注入功能,并且我提到我将在“本周晚些时候”提供更多信息。事实证明,这有点乐观,但好消息是此功能在此期间已经发展了很多。因此,要遵循这里的示例,你需要下载 2.1-M2 正式版本(或者,如果你是在更新后的条目发布后最早阅读此文章的人之一,并且 M2 尚未可用,则应至少获取你可以从 这里 下载的 nightly build #115)。
我想首先演示如何创建一个不使用任何 XML 的应用程序上下文。对于那些使用过 Spring 的 BeanDefinitionReader 实现的人来说,这看起来非常熟悉。但是,在创建上下文之前,我们需要类路径上的一些“候选”Bean。继续使用我之前博客中的示例,我有以下两个接口:
public interface GreetingService {
String greet(String name);
}
public interface MessageRepository {
String getMessage(String language);
}
……以及这些相应的实现:
@Component
public class GreetingServiceImpl implements GreetingService {
@Autowired
private MessageRepository messageRepository;
public String greet(String name) {
Locale locale = Locale.getDefault();
if (messageRepository == null) {
return "Sorry, no messages";
}
String message = messageRepository.getMessage(locale.getDisplayLanguage());
return message + " " + name;
}
}
@Repository…