내 생각의 getBean()비 관리 봄 봄 웹 응용 프로그램 및 jar 파일로는
I가 가지고해야 Spring에 의해 관리
서비스
포함 된 .jar 파일을 만드는 것입니다 기능 웹 응용 프로그램의 WEB-INF/lib에 넣으려는 경우그런 다음 web-app Servlets에서 Jar 파일의 기능을 사용하고 싶습니다.
1 아이디어. 스프링 컨텍스트 (getBean() 등)에 대한 호출을 캡슐화하는 클래스를 작성하십시오. 예를 들어, 사용할 클래스는 단순히 매개 변수를 가져오고 매개 변수 을 리턴하지만 그 클래스 안에는 Spring의 getBean 등이 호출됩니다
이 경우 JAR 가져 오기를 통해 서블릿에서 사용하는 데는 문제가 없을 것입니다. 콩만을 포장하기 위해 콩을 얻으려면 .jar 내부에서 어떤 종류의 컨텍스트를 사용해야합니까? ApplicationContext 또는 무엇?
2 아이디어. jar 파일로 압축 한 다음 Spring 환경에서 관리하지 않는 서비스를 사용하는 간단한 해결책이 있습니까?
@lexicore 구성 스 니펫이 멋지게 보입니다 (작동하는 경우). 몇 가지 세부 사항에 대해 물어볼 수 있을까요? 보시다시피, 저는이 경우 Spring 관리 클래스를 WEB-INF/classes 어딘가에 배치해야합니다. 별도의 .jar 파일은 어떻습니까? 모든 것이 jar로 압축되어 WEB-INF/lib에 저장되면이 설정이 작동합니까? – EugeneP
@EugeneP 확실하게 작동합니다. 링크를 게시 한 샘플 프로젝트를 확인하십시오. 클래스와 applicationContext.xml이 WEB-INF/classes에 있거나 WEB-INF/lib에 jar로 존재하는지는 중요하지 않습니다. 클래스 패스에서로드됩니다. 저는 이것에 대해 100 % 확신합니다. 이것은 우리가 많은 프로젝트에서하는 것과 정확히 같습니다. – lexicore
beans.xml에서 "context : component-scan"을 사용합니다. 아마도 문제 일 수 있습니다. jar를 컴파일하고, WEB-INF/lib에 넣고, 제안한대로 web.xml을 편집했습니다. 한 가지를 이해하지 못합니다. beans.xml을 어디에 넣을까요? jar 파일에 보관하거나 WEB-INF 디렉토리에 넣을까요? 두 가지 방법 모두 시도했는데 그 결과는 같습니다. beans.xml에 명시 적으로 존재하는 bean을 얻을 수는 있지만 구성 요소 검사 작업 (@Autowired)을 얻을 수는 없습니다. 오류는 다음과 같습니다. "명명 된 bean이 없습니다 ... 정의되었습니다." 어떤 아이디어? – EugeneP