이제 비즈니스 로직 부분에 관심을 돌려보자. 드디어 IoC의 진면목을 접하기 시작하는 것이다.
ContextLoader
앞에서 Spring MVC 부분을 다루는 과정에서 설정파일이 [servlet-name]-servlet.xml 파일이라고 하였다. 비즈니스 로직부분도 모두 이 파일에 설정을 할 수도 있지만, 그것이 현명한 방법은 아니다.
비즈니스 로직은 분리되는 것이 바람직하다. 이를 위해서 ContextLoader를 사용한다. 여기에는 ContextLoaderListener와 ContextLoaderServlet이 있는데, 우리는 ContextLoaderListener에 집중한다. Servlet 2.4에서는 이것이 편리하다.
web.xml에 다음과 같은 코드를 추가한다:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
주의할 점은 Log4J에 대한 설정이 위 코드보다 먼저 존재해야 한다는 것이다. 특히 Log4jConfigListener는 ContextLoaderListener보다 먼저 설정되어야 한다.
contextConfigLocation에 여러개의 applicationContext 파일들을 선언할 수 있다. 각각은 space문자로 구분하면 된다. (comma, semi colon도 된다.) 일단 여기서는 하나만 선언하자. 하지만, 곧 여러 개가 될 것이다.
공통 문자열 지정
각 웹 페이지의 title은 보통 공통적으로 지정하는 경향이 있다. 이를 각 페이지마다 일일이 달아주기 보다는 key-value 쌍으로 미리 지정해두고 이를 불러다 사용하는 것이 효율적이다. 보통 ResourceBundle을 사용한다.
/WebContent/WEB-INF/applicationContext.xml 파일을 다음과 같이 만든다:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
</beans>
이렇게 하면, /WEB-INF/classes/messages.properties 파일을 시스템이 읽게 된다. 이 파일을 다음과 같이 만든다 :
title=SpringBloom
이제 home.jsp 파일의 title TAG를 변경한다:
<title><fmt:message key="title" /></title>
이와 같은 방식으로 여러 페이지에서 공통으로 사용되는 문자열을 .properties 파일로 지정할 수 있다.
ContextLoader
앞에서 Spring MVC 부분을 다루는 과정에서 설정파일이 [servlet-name]-servlet.xml 파일이라고 하였다. 비즈니스 로직부분도 모두 이 파일에 설정을 할 수도 있지만, 그것이 현명한 방법은 아니다.
비즈니스 로직은 분리되는 것이 바람직하다. 이를 위해서 ContextLoader를 사용한다. 여기에는 ContextLoaderListener와 ContextLoaderServlet이 있는데, 우리는 ContextLoaderListener에 집중한다. Servlet 2.4에서는 이것이 편리하다.
web.xml에 다음과 같은 코드를 추가한다:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
주의할 점은 Log4J에 대한 설정이 위 코드보다 먼저 존재해야 한다는 것이다. 특히 Log4jConfigListener는 ContextLoaderListener보다 먼저 설정되어야 한다.
contextConfigLocation에 여러개의 applicationContext 파일들을 선언할 수 있다. 각각은 space문자로 구분하면 된다. (comma, semi colon도 된다.) 일단 여기서는 하나만 선언하자. 하지만, 곧 여러 개가 될 것이다.
공통 문자열 지정
각 웹 페이지의 title은 보통 공통적으로 지정하는 경향이 있다. 이를 각 페이지마다 일일이 달아주기 보다는 key-value 쌍으로 미리 지정해두고 이를 불러다 사용하는 것이 효율적이다. 보통 ResourceBundle을 사용한다.
/WebContent/WEB-INF/applicationContext.xml 파일을 다음과 같이 만든다:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
</beans>
이렇게 하면, /WEB-INF/classes/messages.properties 파일을 시스템이 읽게 된다. 이 파일을 다음과 같이 만든다 :
title=SpringBloom
이제 home.jsp 파일의 title TAG를 변경한다:
<title><fmt:message key="title" /></title>
이와 같은 방식으로 여러 페이지에서 공통으로 사용되는 문자열을 .properties 파일로 지정할 수 있다.
'Programming > SpringFrameWork' 카테고리의 다른 글
[펌]Spring Framework 따라하기 [8] - Model 설계 상세 (0) | 2008.11.07 |
---|---|
[펌]Spring Framework 따라하기 [7] - Model 설계 (0) | 2008.11.07 |
[펌]Spring Framework 따라하기 [5] - include문과 logging 설정 (0) | 2008.11.07 |
[펌]Spring Framework 따라하기 [4] - 프로세스 결과 보여주기 (0) | 2008.11.07 |
[펌]Spring Framework 따라하기 [3] - Hello Application (0) | 2008.11.07 |