OSGi를 처음 보았을 때 나는 JAR을 빌드 할 수 있었고 manifest 파일이있는 한 OSGi 컨테이너에 배치 할 수 있다는 인상하에있었습니다. 필자는 고전적인 방법으로 모듈을 빌드하고 상상할 수있는 플러그인을 사용하여 매니페스트를 작성한 다음 OSGi를 통해 다른 모듈과 통신하는 독립 실행 형 응용 프로그램을 만들 수 있습니다.OSGi modules/bundles granularity
OSGi에 대한 추가 정보는 저급 수준에서 기본적으로 의존성 주입을 대체하고 로깅과 같은 교차 절단 관련 서비스를 제공하는 데 사용되는 예제가 많이 있습니다. 그리고 최대 절전 모드 나 다른 모드와 같은 것들을 사용하는 것은 문제입니다 ... (또는 아마도 나는 뭔가를 놓친 것입니다).
적어도 나에게는 OSGi와 같은 정교성과 통합 성의 장점을 실제로 볼 수 없다. 별도의 모듈이 있어야하는데, 각 모듈마다 고유 한 세트가있다. 기술 및 프레임 워크, 그리고 아마도 웹 자원 및 지속성 계층을 포함합니다. 이것이 OSGi로 달성 할 수 있습니까? 그렇다면 올바른 방향이나 예제 등을 가르쳐 주시겠습니까?
편집, 나는은 OSGi를 사용하려고 해요 방법에 대한 몇 가지 세부 사항을 더 추가 :
가 난 그냥 하나 이상의 클래스 모듈을 가질 수있는 가능성을 상상 해요, 즉 더있을 수 있습니다 상위 - 책임감.
좋아요. 의제 모듈을 좋아합니다. 이 경우에는 이벤트의 지속성, 이벤트 추가, 필터로 이벤트 목록 표시 등을 원합니다. 이 아젠다에는 여러 가지 내부 클래스가있을 수 있으며 지속성 계층이 필요할 수도 있습니다. 그래서 저는 Guice와 같은 클래스를 DI로 사용하고 JPA는 데이터를 유지하려고합니다.
서버 또는 로깅과 같은 X- 커팅 문제는 번들을 포함 할 수 있지만 데이터 모델은 의제 번들에만 해당된다는 것을 알고 있습니다. 그래서 제 질문은 끝났다고 생각합니다. 무엇이 무엇이며, 번들 안에서 할 수없는 것은 무엇입니까? 그리고 일반적인 관행으로 내부에서 무엇을해서는 안되며해야하지 않습니까?
감사합니다. Mauricio
그래서 OSGi-ready 프레임 워크 (guice?)를 사용하면 내 번들 내에서 계속 사용할 수 있습니까? – Mauricio
그래, 그럴 것이다. 그러나 스프링 (Guice)과 같은 매우 모듈화 된 코드 프레임 워크를 작성할 때 문제가 너무 작아 져서 과도한 비중을 느끼기 때문에 기본 코드가 느슨해지는 경향이있다. 좋은 번들은 응집력이 있으며 일반적으로 이러한 프레임 워크의 오버 헤드가 필요하지 않습니다. 그러나 OSGi 세계에서는이 가중치를 추가 할 수 없습니다. –