Apache Commons Configuration
:애플리케이션 운영 환경 설정에 사용하는 기술
- Apache commons 프로젝트 중 한 컴포넌트인 Configuration.
Commons Configuration은 일반화된 설정 인터페이스를 제공함으로써 자바 애플리케이션이 다양한 소스에서 설정을 읽을 수 있도록 해준다.
자바에서 설정 파일 읽어들이는 방법
* 순서 :
1. [web.xml]
선언된 listener클래스 ContextLoaderListener 의해 RootWebApplicationContext영역을 구성
applicationContext.xml
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/spring/applicationContext.xml
</param-value>
</context-param>
2. [applicationContext.xml ]
CommonConfigurationFactoryBean – Apache commoms의 여러 컴포넌트중 Configuration 스프링통합 컴포넌트. 하나이상의 소스에서 설정값을 읽은 Configuration을 등록한 후 PropertyPlaceholderConfigurer의 properties필드에 대입해주면 등록된 configuration들에 담겨있는 설정값들을 Properties로 변환해서 전달해준다.
<bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="systemPropertiesMode" value="2" />
<property name="properties">
<bean
class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean">
<property name="configurations">
<list>
<ref bean="configuration"
/>
</list>
</property>
</bean>
</property>
</bean>
Configuration의 기능을 직접 쓰고 싶은 경우를 위해서 설정을 분리하고 필요한 객체에서 참조한다.
<bean id="configuration" class="org.apache.commons.configuration.CompositeConfiguration">
<constructor-arg>
<list>
<bean class="org.apache.commons.configuration.XMLConfiguration">
<constructor-arg type="java.lang.String">
<value>#{systemProperties['project.home']}/conf/project.xml</value>
</constructor-arg>
</bean>
<bean class="org.apache.commons.configuration.PropertiesConfiguration">
<constructor-arg type="java.lang.String">
<value>#{systemProperties['project.home']}/conf/db.properties</value>
</constructor-arg>
</bean>
</list>
</constructor-arg>
</bean>
즉 실제 설정해준 경로의
project.xml / db.properties
설정파일들을 읽어들이고 참조할 수 있게 된다!!!!!!!!!!!!
'Back-end > JAVA,Spring' 카테고리의 다른 글
[spring] 어노테이션이란? @modelAttribute (0) | 2019.06.04 |
---|---|
[java spring] 스프링프레임워크 <form:form> 태그 사용법 (0) | 2019.05.30 |
[java] Enhanced For Loop 향상된 for문 이란? (0) | 2019.04.23 |
[java spring] ModelAndView 모델앤뷰 / ViewResolver뷰리졸버 란 ? (0) | 2019.04.14 |
[Spring Boot] 스프링 부트 MVC 기본 환경설정 (0) | 2019.03.17 |