Back-end
[JSP / Spring] global.properties 변수값 가져오기
ming.gu
2022. 1. 26. 12:54
[JSP / Spring] global.properties 변숫값 가져오기
Sping에는 global.properties라는 파일이 존재하는데 시스템 단에서 환경변수를 설정해 이용할 수 있다.
예를 들어 JNDI 설정이라던지, 서버 운영타입, 서버 내 특정 경로 등
Java에서도 해당 환경변수를 불러와 사용할 수 있고 JSP 내에서도 읽어와 사용할 수 있다.
다음과 같은 프로퍼티 파일이 있다고 가정하자.
#----------------------------------------------------------------------------------------------------------------------------
# 운영서버 타입(WINDOWS, UNIX)
#----------------------------------------------------------------------------------------------------------------------------
Globals.OsType=WINDOWS
#----------------------------------------------------------------------------------------------------------------------------
# API 사용키값
#----------------------------------------------------------------------------------------------------------------------------
Api.key=apikeySampleTest
Api.pw=apiPwSampleTest
<Java>
@Value("${Globals.OsType}")
private String serverOsType;
<JSP>
JSP 내에서 사용하려면 먼저 PropertiesFactoryBean 객체를 사용해 Bean 등록을 해야 한다.
@Bean(name="GlobalProperties")
public PropertiesFactoryBean GlobalProperties() {
PropertiesFactoryBean bean = new PropertiesFactoryBean();
bean.setLocation(new ClassPathResource("resource/env/globals.properties"));
return bean;
}
다음 JSP 내에서 spring:eval 태그를 이용해 Bean을 불러들여 변수 할당을 한다.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<spring:eval expression="@GlobalProperties['Api.apiKeySampleTest']" var="ApiKey"/>
다음 pageScope내에 할당된 값을 스크립틀릿으로 선언하고
<%
String apiKey = (String) pageContext.getAttribute("ApiKey"); //API Key 값";
%>
그리고 script 태그내에서 jsp표현식으로 불러들인다.
<script type="text/javascript">
String apiKey = '<%=ApiKey%>'
</script>