1. context:component-scan
- base-package : @Controller, @Component, @Service, @Repository 어노테이션을 가진 클래스들을 빈으로 등록하기 위해 탐색 할 최상위 패키지
- use-default-filters : true이면 exclude-filter를 통해 선언 된 어노테이션을 제외하고 등록 exclude-filter가 없으면 4개의 어노테이션을 모두 등록, false이면 아래 include-filter를 통해 선언 된 어노테이션만 등록(default = true)
- context:include-filter : @Controller, @Component, @Service, @Repository 중 등록하고 싶은 어노테이션만 지정해서 등록
<context:component-scan base-package="com.xxx.project" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
2. mvc:annotation-driven
- 아래의 설정과 동일한 동작을 함
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="writeAcceptCharset" value="false" />
</bean>
<bean class="org.springframework.http.converter.ResourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
<!-- jaxb2라이브러리 존재시 -->
<bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
<!-- jackson 라이브러리 존재시 -->
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
<!-- rome 라이브러리 존재시 -->
<bean class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
<bean class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
해당 설정에 argument-resolvers를 넣게 되면 controller에 전달인자로 받을 수 있는 객체가 등록 됨
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="com.xxx.project.resolver.TestArgumentResolver"/>
</mvc:argument-resolvers>
</mvc:annotation-driven>
3. mvc:resources
- web home 아래 경로를 지정하면 jsp에서 가져다 쓸 수 있음
<mvc:resources mapping="/resource/image/**" location="/image/"/>
4. mvc:interceptors
- mapping 경로에 들어가기 전 수행할 interceptor를 선언
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*.do"/>
<bean class="com.xxx.project.interceptor.TestInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
5. bean 등록
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonMessageConverter"/>
</list>
</property>
</bean>
<bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
6. view-controller
- 해당 경로로 들어올 경우 이동할 view를 mapping 해 줌
<mvc:view-controller path="/" view-name="index"/>
* servlet-context에서 사용하는 것 위주로 작성.
applcation-context에는 service, dao를 지원하기 위한 aop, cache, properties 설정 등 필요한 걸 추가해서 사용하자!!
'자바 > 스프링' 카테고리의 다른 글
Spring Bean Scope (0) | 2019.04.04 |
---|---|
Spring AOP (0) | 2019.04.01 |
Spring Transaction (0) | 2019.03.15 |
IoC(Inversion of Controll) - 제어의 역전 (0) | 2019.02.13 |
DispatcherServlet (0) | 2019.02.11 |