Java 어노테이션

sein lee·2023년 11월 6일
0
post-thumbnail
post-custom-banner

@RequestMapping

특정 URI로 요청을 보내면 Controller 에서 어떠한 방식으로 처리할 지 정의
이 때 들어온 요청을 특정 메서드와 매핑하기 위해 사용 (URL 과 Controller의 method를 매핑)

  • value : 요청 받을 url
  • method : 어떤 방법으로 받을지 (GET,POST,PUT,DELETE..)
MethodDes
GET리소스 조회
POST리소스 생성
PUT리소스 수정
PATCH리소스 일부 수정
DELETE리소스 삭제
  • @RequestMapping 은 Class와 Method에 붙일 수 있고 @GetMapping, PostMapping, @PutMapping 등은 Method 에만 붙일 수 있다.
@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 로 접근

@CrossOrigin

CORS 이슈가 발생 할 때 사용 가능

웹 페이지의 제한된 자원을 외부 도메인에서 접근을 허용해주는 매커니즘
모든 도메인, 모든 요청방식에 대해 허용한다.

@CrossOrigin(origins = "*")  

@Resource

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 객체에 의존성을 가지게 된다.


@RequestBody

  • 클라이언트 -> 서버 요청
  • json 기반의 HTTP Body를 자바 객체로 변환

@ResponseBody

  • 자바 객체를 json 기반의 HTTP Body로 변환

@RequestParam

HttpServletRequest 객체와 같은 역할을 한다.

@RequestParam("가져올 데이터 이름")[데이터 타입][가져온데이터를 담을 변수]

Model 객체를 이용해서 View로 값을 넘겨준다.


profile
개발감자
post-custom-banner

0개의 댓글