오답노트
[SpringBoot] @Controller 와 @RestController 본문
@Controller
- 일반적인 API를 만드는 것 가능
- Model을 인자로 주게 되면 View를 호출 할 수 있음
- @ResponseBody를 활용하면 REST 방식으로 응답 가능
@RestController
- Rest API를 만드는 것에 용이하다.
- 인터페이스를 보면 @Controller와 @ResponseBody를 사용하고있다.
- Model를 인자로 줘도 View를 호출 하지 못함
package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Controller;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
/**
* The value may indicate a suggestion for a logical component name,
* to be turned into a Spring bean in case of an autodetected component.
* @return the suggested component name, if any (or empty String otherwise)
* @since 4.0.1
*/
@AliasFor(annotation = Controller.class)
String value() default "";
}
@Controller 와 @RestController 에서 Model 인자 사용 차이
@Controller
package com.harmonyhub.harmonyhub.page;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@Controller
public class mainPageController {
@GetMapping("/home")
public String getMainPage(Model model) {
return "home";
}
}
@RestController
package com.harmonyhub.harmonyhub.page;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class mainPageController {
@GetMapping("/home")
public String getMainPage(Model model) {
return "home";
}
}
'Java > Spring' 카테고리의 다른 글
[JUnit] Service 테스트 (0) | 2024.05.13 |
---|---|
[SpringBoot] SpringBoot 3.2.5에서 JSP 설정 (0) | 2024.05.06 |
[Spring Security] OAuth2 로그인 (0) | 2023.07.28 |
[Spring Security] SessionManagementFilter (0) | 2023.07.27 |
[Spring JPA] 영속성 전이(Cascade) 와 고아제거속성(orphanRemoval) (0) | 2023.07.24 |