반응형
Spring properties 설정하기
* .properties란??
1. PropertyPlcaeHolderconfigurer 로 설정파일 읽어오기
RootApplicationContext 영역에 아래와 같이 bean을 등록해주면 된다.
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:config.ini" />
<property name="fileEncoding" value="UTF-8" />
</bean>
RootApplicationContext 영역에 bean을 설정했기에 같은 영역에 선언된 빈에서는 아래 코드를 사용해서 값을 가져올 수 있다.
@Value("${project.file.upload.location}")
private String saveLocation;
하지만 servlet.xml 영역에서는 해당 bean에 접근 할 수 없다.
2. property-placeholder 로 설정파일 읽어오기
RootApplicationContext 영역에 아래와 같이 bean을 등록해주면 된다.
<context:property-placeholder location="classpath:*config.ini" />
RootApplicationContext 영역에 bean을 설정했기에 같은 영역에 선언된 빈에서는 아래 코드를 사용해서 값을 가져올 수 있다.
@Value("${project.file.upload.location}")
private String saveLocation;
하지만 servlet.xml 영역에서는 해당 key에 접근 할 수 없다.
- config.ini 의 key와 @Value에 적은 key가 일치하지 않으면 에러가 난다.
3. spring-util의 properties 로 설정파일 읽어오기
RootApplicationContext 영역에 아래와 같이 property을 등록해주면
<util:properties id="config" location="classpath:*config.ini" />
코드는 아래와 같이 사용하면 된다. 단, id를 적어주어야 한다.
@Value("#{config['project.file.upload.location']}")
private String saveLocation;
RootApplicationContext 영역에 설정(등록)했지만 이는 유틸리티로서 위 1,2보다 넓은 범위에서 사용 가능하다.
그러므로 servlet.xml 영역인 Controller에서 사용이 가능하다.
@Controller
public class NoticeController {
@Value("#{config['project.context.path']}")
private String contextRoot;
반응형
'Back-end > JAVA,Spring' 카테고리의 다른 글
컬렉션 프레임워크(collection framework)란? - List vs Map (0) | 2018.10.18 |
---|---|
제네릭 Generic 이란? (0) | 2018.10.18 |
[Java]자주 사용하는 String class의 생성자와 메서드 및 사용법. (0) | 2018.09.06 |
스프링 흐름 파악하기. Spring Flow -소스코드 예제 (0) | 2018.08.25 |
스프링이란? Spring / IoC 역제어 / DI 의존성 주입 (0) | 2018.08.24 |