전자정부프레임워크 + Cloud Foundry + Redis 사용하기

1 개요[ | ]

전자정부프레임워크 + Cloud Foundry + Redis 사용하기

2 사전작업[ | ]

여기서는 인스턴스명이 'redis1'이라고 가정한다.

3 pom.xml 수정[ | ]

  • pom.xml 파일에 dependency 설정을 추가한다.
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>1.6.1.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.8.0</version>
		</dependency>

4 dispatcher-servlet.xml 수정[ | ]

  • src/main/webapp/WEB-INF/conf/egovframework/springmvc/dispatcher-servlet.xml 파일 하단부에 jedisFactory, stringRedisTemplate 빈(bean)을 추가한다.
	<!-- /For Pagination Tag -->

	<bean id="jedisFactory"	class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" />
	<bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
		<property name="connectionFactory" ref="jedisFactory" />
	</bean>

	<mvc:view-controller path="/cmmn/validator.do" view-name="cmmn/validator"/>
</beans>

5 MyRedisController 생성[ | ]

  • src/main/java --- egovframework.example.sample.web 패키지에 MyRedisController.java 파일을 생성하고 아래 내용으로 교체한다.
package egovframework.example.sample.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MyRedisController {
	@Autowired
	private StringRedisTemplate redisTemplate;
	
	@RequestMapping(value = "/helloRedis.do")
	public String HelloRedis(ModelMap model) throws Exception {
		ValueOperations<String, String> ops = this.redisTemplate.opsForValue();
		String key = "spring.egov.redis.test";
		if( !this.redisTemplate.hasKey(key)) {
			ops.set(key, "foo");
		}
		model.addAttribute("message", "Found key "+key+", value="+ops.get(key));
		return "sample/helloRedis";
	}
}
http://서버주소/helloRedis.do 호출 시 HelloRedis() 메소드가 실행된다.
→ Redis에 spring.egov.redis.test라는 키가 있는지 확인하고, 없으면 그 키에 foo 값을 넣는다.
→ 그 key에 해당하는 값을 얻고(get) 모델에 'message'이라는 속성(변수)으로 넘겨준다.

6 helloRedis.jsp 생성[ | ]

  • src/main/webapp/WEB-INF/jsp/egovframework/example/sample 폴더에 helloRedis.jsp 파일을 생성하고 아래 내용으로 교체한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>메시지: ${message}</h2>
</body>
</html>

7 index.jsp 수정[ | ]

  • 위 문단까지 하고 배포하면 http://앱주소/helloRedis.do 로 확인 가능하다.
  • 이 문단에서는 좀더 편리하게 테스트하기 위해 웹루트( http://앱주소/ )에서 바로 확인 가능하도록 설정한다.
  • src/main/webapp/index.jsp 를 열어 아래 내용으로 교체한다.
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!-- jsp:forward page="/egovSampleList.do"/ -->
<jsp:forward page="/helloRedis.do"/>

8 manifest.yml 수정[ | ]

---
applications:
- name: egovredis
  memory: 512M
  buildpack: egov_buildpack_v35
  env:
    JBP_CONFIG_COMPONENTS: '[containers: Tomcat]'
  services:
  - redis1

9 배포 후 확인[ | ]

  • Cloud Foundry 서버에 배포 후, 웹브라우저에서 확인해보자.
메시지: Found key spring.egov.redis.test, value=foo

10 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}