고려중인 종속성 주입 프레임 워크 목록에 Spring을 포함시킬 수 있습니다. 다음은 질문에 대한 몇 가지 답변입니다.
프레임 워크에 연결
Pico -Pico는 setter 주입을 권장하지 않는 경향이 있지만 그 외에는 수업에서 Pico에 대해 알 필요가 없습니다. 알아야 할 것은 배선뿐입니다 (모든 DI 프레임 워크에 적용됨).
Guice -Guice는 이제 표준 JSR 330 주석을 지원 하므로 더 이상 코드에 Guice 특정 주석이 필요하지 않습니다. Spring은 또한 이러한 표준 주석을 지원합니다. Guice 사람들이 사용하는 주장은 Guice 주석 프로세서가 실행되지 않으면 다른 프레임 워크를 사용하기로 결정한 경우 영향을 미치지 않아야한다는 것입니다.
Spring -Spring은 코드에서 Spring 프레임 워크에 대한 언급을 피하는 것을 목표로합니다. 그들은 다른 많은 도우미 / 유틸리티 등을 가지고 있기 때문에 Spring 코드에 의존하려는 유혹은 꽤 강합니다.
공연
Pico - Pico 의 속도 특성에 너무 익숙하지 않습니다.
Guice -Guice는 빠르도록 설계되었으며 참조에 언급 된 비교에는 몇 가지 숫자가 있습니다. 확실히 속도가 주요 고려 사항이라면 Guice를 사용하거나 손으로 배선하는 것이 고려되어야합니다.
봄 -봄은 느릴 수 있습니다. 더 빠르게 만들기위한 작업이 있었고 JavaConfig 라이브러리를 사용하면 속도가 빨라질 것입니다.
사용의 용이성
Pico- 구성이 간단합니다. Pico는 몇 가지 자동 배선 결정을 내릴 수 있습니다. 매우 큰 프로젝트로 확장되는 방법이 명확하지 않습니다.
Guice- 구성이 간단합니다. 주석을 추가하고 AbstractModule에서 상속하여 함께 묶습니다. 구성이 최소한으로 유지되므로 대규모 프로젝트에 맞게 확장됩니다.
Spring- 상대적으로 구성하기 쉽지만 대부분의 예제는 구성 방법으로 Spring XML을 사용합니다. Spring XML 파일은 시간이 지남에 따라 매우 크고 복잡해질 수 있으며로드하는 데 시간이 걸립니다. 이를 극복하기 위해 Spring과 수동 크랭크 종속성 주입을 혼합하여 사용하는 것을 고려하십시오.
커뮤니티 규모
Pico- 소형
Guice- 중간
봄 -대형
경험
Pico - Pico에 대한 경험은 많지 않았지만 널리 사용되는 프레임 워크가 아니므로 리소스를 찾기가 더 어려울 것입니다.
Guice -Guice는 인기있는 프레임 워크이며 개발 과정에서 많이 다시 시작하는 대규모 프로젝트가있는 경우 속도에 중점을 두는 것이 좋습니다. 구성의 분산 된 특성에 대한 우려가 있습니다. 즉, 전체 응용 프로그램이 어떻게 결합되는지 확인하기가 쉽지 않습니다. 이 점에서 AOP와 비슷합니다.
봄 -봄은 일반적으로 기본 선택입니다. 즉, XML이 번거로워지고 결과적으로 속도가 느려지 게됩니다. 나는 종종 손으로 만든 Dependency Injection과 Spring의 조합을 사용합니다. 실제로 XML 기반 구성이 필요한 경우 Spring XML이 매우 좋습니다. Spring은 또한 다른 프레임 워크를 더 많이 의존성 주입에 친숙하게 만드는데 많은 노력을 기울였습니다. 이것은 그렇게 할 때 종종 모범 사례를 사용하기 때문에 유용 할 수 있습니다 (JMS, ORM, OXM, MVC 등).
참고 문헌