7.2.3. 使用注入来扩展实施

您可以使用注入来添加或更改现有代码的功能。

以下示例为现有类添加了转换功能,并假定您已有一个 Welcome 类,它具有方法 buildPhrasebuildPhrase 方法将城市名称用作参数,并输出一个短语,如"Welcome to Boston!"。

这个示例将假设的转换 对象注入到 Welcome 类中。Translator 对象可以是企业 Java Bean 无状态 Bean Bean bean 或其他类型的 bean,它可以将句子从一个语言转换为另一种语言。在这个示例中,转换 器用于 转译整个问候语,而不修改原始 Welcome 类。Translator 在调用 buildPhrase 方法之前注入。

示例:将一个翻译器 Bean 注入 欢迎

public class TranslatingWelcome extends Welcome {

    @Inject Translator translator;

    public String buildPhrase(String city) {
        return translator.translate("Welcome to " + city + "!");
    }
    ...
}