[디자인 패턴] 의존성주입 예시
public class UserServiceFactory { public UserService getInstance(){ return new UserService(new UserDataRepositoryImpl()); } } class UserService{ private UserDataRepository udr; UserService(UserDataRepository udr){ this.udr = udr; } public void persistUser(User user){ udr.save(user); } }
JAVA EE로 DI구현
public class UserServiceFactory { public UserService getInstance(){ return new UserService(new UserDataRepositoryImpl()); } } class UserService{ @Inject private UserDataRepository udr; public void persistUser(User user){ udr.save(user); } }
의존체 주입(ID)
– 목 객체를 써서 단위 테스트를 구현하기 쉬움
–
@Resource : JMS, URL 등 데이터 소스를 주입
@EJB : EJB를 주입
@WebServiceRef : 웹서비스를 주입
@Named를 붙이면 EL에서 참조할 수 있음.
컨텍스트와 스코프
@RequestScoped : 사용자 HTTP 요청이 살아있는 동안 지속
@SessionScoped : 사용자 HTTP 세션이 살아있는 동안 지속
장식자패턴
@Decorator, @Delegate 애너테이션사용
beans.xml에 반드시 적야아함
서브클래싱할 수 없거나(하위 클래스 너무 많아져서) 사용
팩토리패턴
new키워드를 가급적 안쓰고 캡슐화 가능
생산자 메서드에 @Produces를 붙임
옵저버패턴 호출하는 코드와 호출받는 코드의 순서를 바꿈. 객체가 리소스의 변화를 감지할 수 있음
@Observes 애너테ㅔ이션과 이벤트로 구현.
최근 댓글