특정 URI로 요청을 보내면 Controller 에서 어떠한 방식으로 처리할 지 정의
이 때 들어온 요청을 특정 메서드와 매핑하기 위해 사용 (URL 과 Controller의 method를 매핑)
Method | Des |
---|---|
GET | 리소스 조회 |
POST | 리소스 생성 |
PUT | 리소스 수정 |
PATCH | 리소스 일부 수정 |
DELETE | 리소스 삭제 |
@RestController
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String helloGet(...) {
...
}
@RequestMapping(value = "/hello", method = RequestMethod.POST)
public String helloPost(...) {
...
}
@RequestMapping(value = "/hello", method = RequestMethod.PUT)
public String helloPut(...) {
...
}
@RequestMapping(value = "/hello", method = RequestMethod.DELETE)
public String helloDelete(...) {
...
}
}
OR
@RestController
@RequestMapping(value = "/hello")
public class HelloController {
@GetMapping()
public String helloGet(...) {
...
}
@PostMapping()
public String helloPost(...) {
...
}
@PutMapping()
public String helloPut(...) {
...
}
@DeleteMapping()
public String helloDelete(...) {
...
}
}
만일 method 별로 url을 따로 지정 해주고 싶다면
@RestController
@RequestMapping(value = "/hello")
public class HelloController {
@GetMapping("/hi")
public String helloGetHi(...) {
...
}
}
// /hello/hi 로 접근
CORS 이슈가 발생 할 때 사용 가능
웹 페이지의 제한된 자원을 외부 도메인에서 접근을 허용해주는 매커니즘
모든 도메인, 모든 요청방식에 대해 허용한다.
@CrossOrigin(origins = "*")
Name 으로 Bean을 지정한다.
@Autowired 와의 차이
@Autowired : 타입을 기준으로Bean 객체를 선택
@Resource : 이름을 기준으로 Bean 객체를 선택
@Repository
public class CommonDao {
@Autowired
private SqlSessionTemplate sqlSession;
}
=> sqlSession은 SqlSessionTemplate 클래스에 의존성을 가지게 된다.
@Repository
public class TestDao {
@Resource(name="BlueSqlSessionTemplate")
private SqlSessionTemplate sqlSession;
}
=> sqlSession은 BlueSqlSessionTemplate의 이름을 가진 Bean 객체에 의존성을 가지게 된다.
HttpServletRequest 객체와 같은 역할을 한다.
@RequestParam("가져올 데이터 이름")[데이터 타입][가져온데이터를 담을 변수]
Model 객체를 이용해서 View로 값을 넘겨준다.