7.2.3. 삽입을 사용하여 구현 확장

삽입을 사용하여 기존 코드의 기능을 추가하거나 변경할 수 있습니다.

다음 예제에서는 기존 클래스에 변환 기능을 추가하고 이미 startup 클래스가 있다고 가정합니다. 이 클래스에buildPhrase 메서드가 있습니다. buildPhrase 메서드는 도시 이름을 인수로 사용하여 "Welcome to Boston!"과 같은 구문을 출력합니다.

이 예제에서는 가상 개체를 Welcome 클래스에 주입합니다. 자카르타 엔터프라이즈 빈 상태 비저장 빈 또는 다른 유형의 빈이 될 있으며 한 언어에서 다른 언어로 문장을 변환할 수 있습니다. 이 경우 원래 Welcome 클래스를 수정하지 않고 전체 인사말을 변환하는 데 사용됩니다. building buildPhrase 메서드를 호출하기 전에 주입됩니다.

예제: Welcome 클래스에 정상적인 빈을 주입합니다.

public class TranslatingWelcome extends Welcome {

    @Inject Translator translator;

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