스프링 관련해서 여기저기 코드를 끌어다 쓰다보면 프로퍼티를 추가 해 주어야 하는 경우가 있다.
기본적으로 전자정부 프레임워크의 기본 샘플 프로젝트에서는 메세지 프로퍼티가 있지만
그건 메세지 소스에 추가 되어 있고 (사실 나도 잘 모름)
그냥 노멀하게 프로퍼티를 추가 하고 싶다 라고 하면 생각보다 굉장히 간단하니 아래 코드를 참고 하여 배워보자
1. 프로퍼티 생성
일단 main 폴더 아래에 resources 폴더 밑에 프로퍼티를 넣어놓을 폴더를 생성하고 그 안에
프로퍼티를 넣는다.
간략히 resources 폴더 밑에 property 라는 폴더를 만들어 file.properties 라는 프로퍼티를 넣어 놓았다.
(이름이 똑같은 필요는 없으니 알아서 하시길)
2. 프로퍼티 추가 등록
전자정부프레임워크의 spring 폴더 밑에
context-common.xml 이라는 파일이 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:component-scan base-package="egovframework"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basenames"> <list> <value>classpath:/egovframework/message/message-common</value> <value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value> <value>classpath:/egovframework/rte/fdl/property/messages/properties</value> </list> </property> <property name="cacheSeconds"> <value>60</value> </property> </bean> <bean id="leaveaTrace" class="egovframework.rte.fdl.cmmn.trace.LeaveaTrace"> <property name="traceHandlerServices"> <list> <ref bean="traceHandlerService" /> </list> </property> </bean> <bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager"> <property name="reqExpMatcher"> <ref bean="antPathMater" /> </property> <property name="patterns"> <list> <value>*</value> </list> </property> <property name="handlers"> <list> <ref bean="defaultTraceHandler" /> </list> </property> </bean> <bean id="antPathMater" class="org.springframework.util.AntPathMatcher" /> <bean id="defaultTraceHandler" class="egovframework.rte.fdl.cmmn.trace.handler.DefaultTraceHandler" /> </beans> |
기본적으로 이런 모양새 인데
먼저 가장 위에 beans 설정하는 schemaLocation 부분에
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
이 주소를 추가해주자
1 2 3 4 5 6 | <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"> | cs |
이렇게 되도록
그리고
<util:properties id="fileProperties" location="classpath:/프로티 경로" />
를 beans 안에 추가 해 주도록 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"> <context:component-scan base-package="egovframework"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basenames"> <list> <value>classpath:/egovframework/message/message-common</value> <value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value> <value>classpath:/egovframework/rte/fdl/property/messages/properties</value> </list> </property> <property name="cacheSeconds"> <value>60</value> </property> </bean> <bean id="leaveaTrace" class="egovframework.rte.fdl.cmmn.trace.LeaveaTrace"> <property name="traceHandlerServices"> <list> <ref bean="traceHandlerService" /> </list> </property> </bean> <bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager"> <property name="reqExpMatcher"> <ref bean="antPathMater" /> </property> <property name="patterns"> <list> <value>*</value> </list> </property> <property name="handlers"> <list> <ref bean="defaultTraceHandler" /> </list> </property> </bean> <bean id="antPathMater" class="org.springframework.util.AntPathMatcher" /> <bean id="defaultTraceHandler" class="egovframework.rte.fdl.cmmn.trace.handler.DefaultTraceHandler" /> <util:properties id="fileProperties" location="classpath:/property/file.properties" /> </beans> | cs |
이렇게 추가를 하면 된다.
3. JAVA에서 사용 하기.
사용할 클래스에
@Resource(name = "fileProperties")
private Properties fileProperties;
이런 코드를 추가 하여 준다. 어노테이션을 사용 하여 빈즈에서 끌어다 쓰는 것 같은데
저 위에 추가한 부분 id 를 이름으로 가져 오는 듯 하다.
그리고 메소드 내부에서 사용 할땐 아래 코드를 추가 하여 사용하고
String uploadPath = fileProperties.getProperty("가져올 데이터 이름");
간략히 코드를 구현하자면 아래와 같은 코드로 사용 하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | @Service("commonFileService") public class CommonFileServiceImpl implements CommonFileService { // 이렇게 어노테이션을 이용하여 불러오도록 준비하고 @Resource(name = "fileProperties") private Properties fileProperties; @Override public 반환 fileUpload(MultipartHttpServletRequest mRequest) { // 저장되는 파일 리스트 List<String> fileNameArray = new ArrayList<String>(); // 이렇게 사용 한다. String uploadPath = fileProperties.getProperty("file.image.winPath"); return 반환; } } | cs |
'Yame Programmer > 전자정부프레임워크' 카테고리의 다른 글
[JSTL] if문 else(choose)문 사용하는 방법 (2) | 2016.07.04 |
---|---|
Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener (1) | 2016.06.02 |
전자정부 프레임워크 Interceptor[인터셉터] 설정 하기 (1) | 2016.05.25 |
서버[tomcat] 실행시 클래스 실행 (0) | 2016.05.24 |
톰캣[tomcat] context간 세션 공유 (0) | 2016.05.24 |