Class GlueWebAutoConfiguration
기존 web.xml, dispatcher-servlet.xml, dispatcher-json-servlet.xml을
Java Config로 대체한다. Spring Boot 웹 환경에서 DispatcherServlet이 존재하면 자동으로 활성화된다.
jsonView 생성시 spring boot 에서 BeanNameViewResolver 등록함.
자동 등록 Bean:
`glueSimpleController- JSP 뷰 응답용 GlueSimpleControllerglueJsonController- JSON 응답용 GlueJsonControllerglueUrlHandlerMapping- URL 패턴 → 컨트롤러 매핑jsonView- JacksonJsonView (JSON 뷰)beanNameViewResolver- Bean 이름 기반 ViewResolverlazyTransactionReleaseFilter- GlueLazyTransactionReleaseFilter (필터 Bean)restfulController- RESTful GlueService 컨트롤러
application.properties 설정:
# MVC 컨트롤러 URL 패턴 (기본값: *.mvc) glue.web.mvc.url-pattern=*.mvc # JSP 경로 spring.mvc.view.prefix=/springmvc/ spring.mvc.view.suffix=.jsp # JSON 컨트롤러 URL 패턴 (기본값: *.json) glue.web.json.url-pattern=*.json # EAI HttpReceiver Servlet 활성화 여부 (기본값: false) glue.web.http-receiver.enabled=true glue.web.http-receiver.url-pattern=*.tc
기존 XML 방식 (web.xml + dispatcher-servlet.xml + dispatcher-json-servlet.xml):
<!-- web.xml -->
<filter>
<filter-class>com.poscoict.glueframework.web.GlueCharacterEncodingFilter</filter-class>
</filter>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<!-- dispatcher-servlet.xml -->
<bean id="urlMapping" class="SimpleUrlHandlerMapping">
<property name="mappings"><value>/*.mvc=controller</value></property>
</bean>
<bean id="controller" class="GlueSimpleController"/>
<bean id="viewResolver" class="InternalResourceViewResolver">
<property name="prefix" value="/springmvc/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- dispatcher-json-servlet.xml -->
<bean id="urlMapping" class="SimpleUrlHandlerMapping">
<property name="mappings"><value>/*.json=controller</value></property>
</bean>
<bean id="controller" class="GlueJsonController"/>
<bean id="viewResolver" class="BeanNameViewResolver"/>
<bean name="jsonView" class="JacksonJsonView"/>
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classSpring WebSocket 인프라를 활성화하는 내부 구성 클래스. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.boot.web.servlet.ServletRegistrationBean<GlueCacheClearServlet> 원격 캐시 초기화 서블릿GlueCacheClearServlet을ServletRegistrationBean으로 등록한다.org.springframework.boot.web.servlet.ServletRegistrationBean<GlueHttpReceiverAdapter> EAI 연동용GlueHttpReceiverAdapter를ServletRegistrationBean으로 등록한다.glueJsonController(View jsonView) JSON 응답용GlueJsonController를 자동 등록한다.org.springframework.boot.web.server.WebServerFactoryCustomizer<org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory> JSP 뷰 응답용GlueSimpleController를 자동 등록한다.URL 패턴과 Glue 컨트롤러를 매핑하는SimpleUrlHandlerMapping을 자동 등록한다.jsonView()JSON 뷰JacksonJsonView를jsonViewBean 이름으로 등록한다.org.springframework.boot.web.servlet.FilterRegistrationBean<GlueLazyTransactionReleaseFilter> GlueLazyTransactionReleaseFilter를FilterRegistrationBean으로 등록한다.restfulController(View jsonView) RESTful 방식의RestfulController를 자동 등록한다.
-
Constructor Details
-
GlueWebAutoConfiguration
-
-
Method Details
-
glueSimpleController
@Bean("glueSimpleController") @ConditionalOnMissingBean(name="glueSimpleController") @ConditionalOnBooleanProperty(name="glue.web.mvc.enabled", matchIfMissing=true) public GlueSimpleController glueSimpleController()JSP 뷰 응답용GlueSimpleController를 자동 등록한다.기존 XML:
<bean id="controller" class="GlueSimpleController"/>- Returns:
- GlueSimpleController
-
glueJsonController
@Bean("glueJsonController") @ConditionalOnMissingBean(name="glueJsonController") @ConditionalOnBooleanProperty(name="glue.web.json.enabled", matchIfMissing=true) public GlueJsonController glueJsonController(@Qualifier("jsonView") View jsonView) JSON 응답용GlueJsonController를 자동 등록한다.기존 XML:
<bean id="controller" class="GlueJsonController"/>- Returns:
- GlueJsonController
-
restfulController
@Bean @ConditionalOnMissingBean(RestfulController.class) @ConditionalOnBooleanProperty("glue.web.restful.enabled") public RestfulController restfulController(@Qualifier("jsonView") View jsonView) RESTful 방식의RestfulController를 자동 등록한다./glue/{serviceName}패턴의 URL을 처리하며@Controller어노테이션으로 자동 감지된다.- Returns:
- RestfulController
-
glueUrlHandlerMapping
@Bean("glueUrlHandlerMapping") @ConditionalOnMissingBean(name="glueUrlHandlerMapping") public HandlerMapping glueUrlHandlerMapping()URL 패턴과 Glue 컨트롤러를 매핑하는SimpleUrlHandlerMapping을 자동 등록한다.기존 XML:
<bean id="urlMapping" class="SimpleUrlHandlerMapping"> <property name="mappings"> <value>/*.mvc=controller</value> </property> </bean>- Returns:
- SimpleUrlHandlerMapping
-
jsonView
JSON 뷰JacksonJsonView를jsonViewBean 이름으로 등록한다.기존 XML:
<bean name="jsonView" class="JacksonJsonView"/>- Returns:
- JacksonJsonView
-
lazyTransactionReleaseFilter
@Bean("lazyTransactionReleaseFilter") @ConditionalOnMissingBean(name="lazyTransactionReleaseFilter") @ConditionalOnBooleanProperty("glue.web.filter.lazy-tx.enabled") public org.springframework.boot.web.servlet.FilterRegistrationBean<GlueLazyTransactionReleaseFilter> lazyTransactionReleaseFilter()GlueLazyTransactionReleaseFilter를FilterRegistrationBean으로 등록한다.GlueLazyTransactionManager 사용 시 요청 처리 후 트랜잭션을 정리해야 할 때 필요하다.
기존 XML (web.xml):
<filter><filter-class>GlueLazyTransactionReleaseFilter</filter-class></filter> <filter-mapping><url-pattern>/*</url-pattern></filter-mapping>- Returns:
- FilterRegistrationBean
-
glueHttpReceiverServlet
@Bean("glueHttpReceiverServlet") @ConditionalOnMissingBean(name="glueHttpReceiverServlet") @ConditionalOnBooleanProperty("glue.web.http-receiver.enabled") public org.springframework.boot.web.servlet.ServletRegistrationBean<GlueHttpReceiverAdapter> glueHttpReceiverServlet()EAI 연동용GlueHttpReceiverAdapter를ServletRegistrationBean으로 등록한다.glue.web.http-receiver.enabled=true glue.web.http-receiver.url-pattern=*.tc glue.web.http-receiver.sc-success=900 glue.web.http-receiver.sc-resend=600 glue.web.http-receiver.sc-failure=700 glue.web.http-receiver.tc-length=8 glue.web.http-receiver.debug-enabled=true
glue.web.http-receiver.enabled=true설정 시만 활성화된다 (기본값: false).기존 XML (web.xml):
<servlet> <servlet-name>HttpReceiver</servlet-name> <servlet-class>GlueHttpReceiverAdapter</servlet-class> </servlet> <servlet-mapping> <servlet-name>HttpReceiver</servlet-name> <url-pattern>*.tc</url-pattern> </servlet-mapping>- Returns:
- ServletRegistrationBean
-
glueCacheClearServlet
@Bean("glueCacheClearServlet") @ConditionalOnMissingBean(name="glueCacheClearServlet") @ConditionalOnBooleanProperty("glue.web.cache-clear.enabled") public org.springframework.boot.web.servlet.ServletRegistrationBean<GlueCacheClearServlet> glueCacheClearServlet()원격 캐시 초기화 서블릿GlueCacheClearServlet을ServletRegistrationBean으로 등록한다.glue.web.cache-clear.enabled=true설정 시만 활성화된다 (기본값: false).
다른 서버 인스턴스로부터 HTTP 요청을 받아 로컬 캐시를 삭제하는 원격 캐시 갱신 기능에 사용된다.기존 XML (web.xml):
<servlet> <servlet-name>cache</servlet-name> <servlet-class>GlueCacheClearServlet</servlet-class> <init-param><param-name>UD_SC_SUCCESS</param-name><param-value>700</param-value></init-param> <init-param><param-name>UD_SC_FAILURE</param-name><param-value>800</param-value></init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cache</servlet-name> <url-pattern>*.cache</url-pattern> </servlet-mapping>application.properties:
glue.web.cache-clear.enabled=true glue.web.cache-clear.url-pattern=*.cache glue.web.cache-clear.success-code=700 glue.web.cache-clear.failure-code=800
- Returns:
- ServletRegistrationBean
-
glueJspDocBaseCustomizer
@Bean("glueJspDocBaseCustomizer") @ConditionalOnMissingBean(name="glueJspDocBaseCustomizer") @ConditionalOnClass(name="org.apache.jasper.servlet.JspServlet") public org.springframework.boot.web.server.WebServerFactoryCustomizer<org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory> glueJspDocBaseCustomizer()
-