programing

봄과 단검이 있는데 왜 기스를 사용/개발합니까?

golfzon 2023. 3. 5. 10:50
반응형

봄과 단검이 있는데 왜 기스를 사용/개발합니까?

내가 아는 바로는, Daugh는 코드를 생성하는 반면, Guice와 Spring은 런타임 처리에 의존하기 때문에 Daugh는 더 빨리 동작하지만 프로그래머 측에서 더 많은 작업이 필요합니다.퍼포먼스 엣지 덕분에 모바일(Android) 개발에 적합합니다.

하지만 우리가 기스와 봄을 남겨두면, 후자는 많은 통합을 가지고 있다.Spring Framework를 사용할 수 있다면 Guice를 개발/사용하는 이유는 무엇입니까? (기본적으로 같은 기능을 하지만 데이터베이스 접근이 용이합니다.)

Google은 Spring Framework를 사용하지 않고, 독자적인 DI 툴을 개발함으로써 바퀴를 재창조하려고 하지 않는가?

DI 툴을 선택하는 방법을 안내하는 Decision Tree를 찾고 있습니다.

Daugh는 Guice의 제작자 중 한 명('Crazy Bob' Lee')이 Square로 옮긴 이후에 제작되었다는 것을 인정해야 합니다.

  • Rod Johnson은 원래 2002년 10월Expert One-on-One J2EE Design and Development라는 으로 Spring을 출시했습니다.그 후 Spring은 2003년 6월에 Apache 라이선스로, 2004년 3월에 v1.0으로 공개되었습니다.
  • 구글은 원래 2007년 3월Guice를 공개했습니다.
  • JSR-330 공식화javax.injectGoogle(Bob Lee) 및 SpringSource(Rod Johnson)가 Expert Group의 다른 업계 공동작업자와 함께 제출한 2009년 10월 주석.
  • 스퀘어는 2013년 5월단검 1을 공개했습니다.
  • 구글은 2015년 4월단검2를 공개하였다.
  • 스퀘어는 2016년 9월 15일 이 질문이 제기되기 10일 전에 단검 1을 폐지되었다고 표시했다.

그런 의미에서 Guice의 지속적인 큐레이션은 "바퀴를 다시 만드는 것"이 아니라 Daugh의 어떤 버전보다 훨씬 앞서서 오랫동안 널리 사용되는 소프트웨어 패키지의 유지보수를 하는 것이다.단검을 기스의 정신적 후계자로 생각할 수도 있지만, 기스의 기능 중 최적화된 부분집합만 제공합니다.

위의 차이점을 나열하고 수정하려면:

  • Spring은 많은 통합, XML 구성 언어 및 런타임/반사 바인딩을 포함하는 비교적 무거운 프레임워크입니다.이미 Spring을 사용하고 있는 어플리케이션에서는 추가 작업을 거의 하지 않고 Spring 의존성 주입 프레임워크를 사용할 수 있습니다.
  • Guice는 비교적 가벼운 프레임워크로 통합 수가 적고 Java 인스턴스 구성 및 런타임/반사 바인딩이 적습니다.Java 바인딩을 사용하면 컴파일 시간 유형 확인 및 IDE 자동 완전 통합을 얻을 수 있습니다.
  • Daugh는 매우 적은 통합, Java 인터페이스/주석 구성 및 컴파일 시간 코드 생성 바인딩을 갖춘 매우 가벼운 프레임워크입니다.코드 생성 측면은 Daught를 전체적으로 매우 높은 성능, 특히 리소스가 제한된 환경에서 매우 높은 성능을 제공합니다(Android의 VM은 서버 JRE와 달리 리플렉션이 특히 느리므로 Daught는 여기에서 특히 유용합니다).
  • 위의 3가지 프레임워크는 모두 JSR-330을 지원하므로 적절하게 설계된 라이브러리 또는 애플리케이션은 사용되는 DI 컨테이너에 의존하지 않습니다.

그 밖에도 사용하는 프레임워크의 유지보수/폐지 패턴과 정책을 주시해 주십시오.팀의 지식과 경험, 리플렉션 또는 런타임 구성의 필요성, 통합과 런타임 퍼포먼스의 필요성에 따라 상기 중 하나가 두드러질 수 있습니다.다른 프레임워크도 있기 때문에, 상기의 새로운 옵션이나 포크도 주시해 주세요.

언급URL : https://stackoverflow.com/questions/39688830/why-use-develop-guice-when-you-have-spring-and-dagger

반응형