KOSA Spring - root-context.xml , @Service

채정윤·2025년 4월 17일

Spring

목록 보기
4/25

구조


코드

HelloController.java:

1️⃣ @RequestMapping

package org.zerock.controller;

import java.util.Locale;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

// HelloController 클래스는 Spring MVC에서 HTTP 요청을 처리하는 역할을 하는 컨트롤러입니다.
// "/hello" 경로로 GET 요청을 받으면 "hello.jsp" 페이지를 반환합니다.
@Controller
public class HelloController {

    // 로그를 기록하기 위한 Logger 객체 생성
    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

    // "/hello" URL 경로로 GET 요청이 들어오면 호출되는 메소드
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String sayHello(Locale locale, Model model) {

        // model에 "message"라는 이름의 속성 추가. 이 값은 JSP에서 출력될 내용입니다.
        model.addAttribute("message", "Hello Spring");

        // "hello"라는 이름의 JSP 페이지로 포워딩
        return "hello";
    }
}

2️⃣ @GetMapping

@Controller
public class HelloController {
	private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

	@GetMapping({"/hello", "/helloSpring"}) // 경로 두개 지정 예시
	public String hello(Model model) {
		model.addAttribute("message", "Hello Spring");
		
		return "hello";
	}
}

hello.jsp:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- model에서 전달된 "message" 값을 출력합니다. -->
	<P>  ${message} </P>
</body>
</html>

🚩 요약

HelloController 클래스는 /hello 요청을 처리하고,

해당 요청에 대한 응답으로 "Hello Spring"이라는 메시지를 JSP 페이지에 전달하여 화면에 출력합니다.

JSP 페이지는 이 메시지를 ${message}로 출력합니다.

.xml 설명서 사용법

root-context.xml:

  • 이 파일은 애플리케이션의 전체적인 비즈니스 로직과 관련된 설정을 담고 있습니다.
  • 주로 서비스, DAO, 트랜잭션 관리와 같은 비즈니스 계층의 설정을 정의합니다.
  • 이 설정은 애플리케이션의 모든 서블릿과 컴포넌트에서 공통적으로 사용됩니다.
  • 서블릿 컨텍스트와 무관하게, 애플리케이션의 핵심 비즈니스 로직 설정이 이 파일에 포함됩니다.
  • 예를 들어, 데이터베이스 연결, 트랜잭션 관리, 서비스 빈 설정 등을 정의합니다.

servlet-context.xml:

  • 이 파일은 웹 관련 설정을 담고 있습니다.
  • 주로 컨트롤러, 뷰 리졸버, 웹 관련 필터와 같은 웹 계층의 설정을 담당합니다.
  • Spring MVC에서 사용하는 설정 파일로, 이 파일에는 서블릿의 설정과 관련된 내용이 포함됩니다.
  • 예를 들어, DispatcherServlet의 설정, HandlerMapping, ViewResolver, 파일 업로드 설정 등이 이 파일에 포함됩니다.

@Service 예제

root-context.xml

<?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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
		
	<context:component-scan base-package="org.zerock.service"></context:component-scan>
		
</beans>

HelloService.java

package org.zerock.service;

import org.springframework.stereotype.Service;

@Service
public class HelloService {

	public String getMessage() {
		return "맛점하세요!";
	}
}

HelloController.java

@Controller
public class HelloController {
    @Autowired
    private HelloService service;
	
	@GetMapping({"/hello", "/helloSpring"})
	public String hello(Model model) {
		// HelloService에서 메시지를 가져옴
        String message = service.getMessage();
        model.addAttribute("message", message); // JSP에 전달할 메시지
        
        return "hello"; // hello.jsp로 이동
	}
}

0개의 댓글