Spring MVC - ApplicationScope

2020. 9. 14. 19:20Java/Spring

반응형

ApplicationScope

- 서버가 실행되고 종료되기까지의 생명주기를 갖는다.

 

ApplicationScope는 request 객체에서 가져와서 사용해야 한다.

 

아래와 같이 사용을 원하는 곳에서 request 객체를 매개변수로 받아와 application 객체를 받아온다.

 

@Controller
public class TestController {
	
	@GetMapping("/test1")
	public String test1(HttpServletRequest request) {
		ServletContext application = request.getServletContext();
		application.setAttribute("data1","문자열1");
		
		return "test1";
	}
	
	@GetMapping("/result1")
	public String result1(HttpServletRequest request) {
		ServletContext application = request.getServletContext();
		String data1 = (String)application.getAttribute("data1");
		System.out.println("data1"+data1);
		return "result1";
	}
}

위에서 set 된 데이터는 서버를 생명주기로 갖으므로 다른 브라우저를 실행시켜도 해당 값이 저장되어 있는다.

 


ServletContext

ServletContext를 @Autowired를 통해 주입 받아서 applicationscope를 사용 가능하다.

 

@Controller
public class TestController {
	
	@Autowired
	ServletContext application;
	
	@GetMapping("/test1")
	//public String test1(HttpServletRequest request) {
	public String test1() {
		//ServletContext application = request.getServletContext();
		application.setAttribute("data1","문자열1");
		
		return "test1";
	}
	
	@GetMapping("/result1")
	//public String result1(HttpServletRequest request) {
	public String result1() {
		//ServletContext application = request.getServletContext();
		String data1 = (String)application.getAttribute("data1");
		System.out.println("data1"+data1);
		return "result1";
	}
}

원래 코드를 위와 같이 수정하여 사용하면 applicationScope가 적용된다.

 

 

 

 

* 객체를 가져와서 applicationScope에 담는 것은 sessionScope와 동일하기에 생략합니다.

반응형

'Java > Spring' 카테고리의 다른 글

Spring MVC - Properties  (0) 2020.09.15
Spring MVC - Cookie  (0) 2020.09.14
Spring MVC - SessionScope  (0) 2020.09.13
Spring MVC - RequestScope 빈 주입  (0) 2020.09.11
Spring MVC - RequestScope  (0) 2020.09.11