[SPRING] Struts 2와 Spring 스트럿츠 생성 객체 처리 방법
SPRINGStruts 2와 Spring 스트럿츠 생성 객체 처리 방법
Struts 2와 스프링 프레임 작업 4 (https://struts.apache.org/docs/spring-plugin.html)를 사용하고 있습니다. Struts bean 생성에 대해 몇 가지 질문이 있습니다.
Spring에서 Struts를 사용할 때 Spring @Inject, @Value, @Resource를 Actions, Validators 및 Interceptors에 @Component (또는 @Named)로 주석없이 쉽게 사용할 수 있습니다. 이것은 struts가 생성 한 객체가 스프링 관리 빈일 것으로 보입니다.
applicationContext.getBeanDefinitionNames ()를 볼 때 액션, 유효성 검사기 또는 인터셉터를 찾을 수 없으므로 사실이 아닙니다.
그래서 Struts가 생성 한 객체가 스프링 관리 빈이 아니라면 왜 스프링 주석 (@Inject, @Value, ...)이 잘 작동 하는가?
기술적으로 새로운 객체를 생성하고 (Spring 시작 후) Spring에 전달하고 Spring이 설정하도록 할 수 있습니까? 방법?!
해결법
-
==============================
1.Struts는 ObjectFactory를 사용하여 액션, 인터셉터, 유효성 검사기 등과 같은 객체를 만듭니다.
Struts는 ObjectFactory를 사용하여 액션, 인터셉터, 유효성 검사기 등과 같은 객체를 만듭니다.
Struts-Spring 플러그인은 자체 객체 팩토리를 등록합니다. StrutsSpringObjectFactory :
거기에서 buildBean ()과 같은 Object를 구축하는 메소드를 오버라이드합니다.
이제 구현을 보면, org.springframework.beans.factory.config.AutowireCapableBeanFactory # createBean () 메소드를 사용하고있다.
이것은 일반적으로 clazz 인수의 새로운 인스턴스를 생성합니다.
그런 다음 새로 생성 된 인스턴스는 org.springframework.beans.factory.config.AutowireCapableBeanFactory # autowireBeanProperties ()를 사용하여 autowiring을 위해 전달됩니다.
그 후,이 사례는 주입을 위해 Guice에게 전달됩니다.
이제 완전히 구워지고 돌아올 준비가되었습니다.
bean이 Spring에 의해 관리되는 경우, 응용 프로그램 컨텍스트에서 getBean 메소드를 사용합니다. 그렇지 않으면 Bean이 Spring에 의해 관리되지 않는 경우 새 인스턴스가 항상 struts-spring 플러그인에 의해 작성됩니다.
from https://stackoverflow.com/questions/39706221/struts-2-and-spring-how-struts-created-objects-handled by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 무국적 스프링 MVC (0) | 2019.04.11 |
---|---|
[SPRING] Freemarker 템플릿에 Spring MVC 유효성 검사 오류 표시 (0) | 2019.04.11 |
[SPRING] MockMvc를 통해 모든 요청에 대해 서블릿 경로를 설정하는 방법 (0) | 2019.04.11 |
[SPRING] Spring Ldap 인증 사용 방법 (0) | 2019.04.11 |
[SPRING] 분할 된 작업은 완료 후에 자체적으로 멈출 수 없습니까? 봄 배치 (0) | 2019.04.11 |