2017-02-23 6 views
0

managed beans에서 CDI으로 jsf2 응용 프로그램을 변환하려고합니다.CDI 생산자 혜택

그래서 저는 CDI의 장점을 배우고 있습니다. 그것은 위대해 보이지만 내가 이해하지 못하는 무언가가 producer입니다.

CDI 나는 장점 중 하나가 coupling을 줄이는 것이라고 읽었습니다. 인터페이스, 일부 구현, @default, @alternate, @inject에 대한 실험을했습니다. 그리고 그 일을하고 있습니다. 이 경우 커플 링 '축소'를 볼 수 있습니다.

그러나 로깅을 위해 제작자를 구현할 때 나는 그것을 보지 못합니다. 지금은 생산자를 생성 한 후, CDI와

Logger log = LoggerFactory.getLogger(MyClass.class); 

같은 것을 사용하고 들어

, 나는 짧다하지만 Logger 클래스는 여전히 예와 결합,

@Inject 
Logger logger; 

확인해야 log4j.

다른 로거 라이브러리를 사용하려면 모든 클래스를 수정해야합니다.

내가 이해하지 못하는 것이 있습니까?

답변

2

당신이 생각하는 것이 나쁘지는 않으며 실제로 어떤 로거를 추상화하는 데 도움이 될 수 있습니다. 그러나 slf4j (https://www.slf4j.org/) 또는 commons-logging과 같은 로깅 어댑터를 사용해야 할 수도 있습니다.이 어댑터는 서로 다른 로거 구현 (log4j 등) 중에서 선택하지만 동일한 로깅 인터페이스를 유지하는 데 도움이됩니다.

그런 다음 사용자 정의 할 수있는 CDI의 단일 제작자 방법을 유지합니다.