>  기사  >  Java  >  springmvc에서 일반적으로 사용되는 5가지 주석은 무엇입니까?

springmvc에서 일반적으로 사용되는 5가지 주석은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-06-22 16:53:414370검색

springmvc에서 일반적으로 사용되는 5가지 주석은 무엇입니까?

추천 튜토리얼: "java 비디오 튜토리얼"

springmvc에서 일반적으로 사용되는 5가지 주석은 무엇입니까?

springmvc에서 일반적으로 사용되는 5가지 주석은 다음과 같습니다.

1. 구성 요소 주석:

1 @Component 클래스 정의 앞에 @Component 주석을 추가하면 스프링 컨테이너에서 인식되어 a로 변환됩니다. 콩.

2. @Repository는 Dao 구현 클래스에 주석을 추가합니다(특수 @Component).

3. @Service는 비즈니스 논리 계층에 주석을 추가하는 데 사용됩니다.(특수 @Component)

4 ​​@Controller는 제어 계층에 주석을 추가하는 데 사용됩니다. (특수 @Component)

위 4개의 Annotation은 모두 클래스에 Annotation이 되어 있으며, Annotation된 클래스는 Spring에 의해 Bean으로 초기화된 후 균일하게 관리됩니다.

2. 요청 및 매개변수 주석:

1, @RequestMapping: 요청 주소 매핑을 처리하는 데 사용되며 클래스 및 메서드에 적용할 수 있습니다.

●value: 요청 요청의 매핑 주소를 정의합니다.

●method: [GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE]를 포함하여 주소를 요청하는 방법을 정의합니다. get 요청이 수락됩니다. 기본적으로 요청한 방법이 정의된 방법과 다른 경우 요청이 성공하지 않습니다.

●params: 요청 요청에 반드시 포함되어야 하는 매개변수 값을 정의합니다.

●헤더: 요청 요청에 다음과 같이 지정된 특정 요청 헤더가 포함되어야 함을 정의합니다. RequestMapping(value = "/something", headers = "content-type=text/*")은 요청에 "text/ html", "text/plain"은 일치하는 요청입니다.

●consumes: 제출을 요청하는 콘텐츠 유형을 정의합니다.

●Produces: 반환할 콘텐츠 유형을 지정합니다. 요청 헤더의 (Accept) 유형에 지정된 유형이 포함된 경우에만 반환됩니다.

@RequestMapping(value="/requestTest.do",params = {"name=sdf"},headers = {"Accept-Encoding=gzip, deflate, br"},method = RequestMethod.GET)
 
   public String getIndex(){
 
     System.out.println("请求成功");
 
     return "index";
 
   }

위 코드는 요청 방법이 GET 요청임을 나타냅니다. 요청 매개변수에는 name=sdf 하나의 매개변수가 포함되어야 하며, 요청 헤더에는 Accept-Encoding=gzip, deflate, br 유형 헤더가 있어야 합니다.

이런 방식으로 주석을 통해 요청을 제한할 수 있습니다.

2.@RequestParam: 들어오는 매개변수의 값을 가져오는 데 사용됩니다.

●value: 매개변수의 이름

●required: 들어오는 매개변수가 필수인지 여부를 정의하며 기본값은 true입니다. @RequestMapping의 params 속성 약간 비슷함)

@RequestMapping("/requestParams1.do")
 
  public String requestParams1(@RequestParam(required = false) String name){
 
    System.out.println("name = "+name);
 
    return "index";
 
  }
 
  @RequestMapping("/requestParams2.do")
 
  public String requestParams2(@RequestParam(value = "name",required = false) String names){
 
    System.out.println("name = "+names);
 
    return "index";
 
  }

두 가지 매개변수 입력 방법은 동일합니다. 선언된 값의 이름이 표시될 때 매개변수 이름은 표시 선언이 없으면 선언된 값과 동일합니다. 첫 번째 방법은 매개변수 이름과 함수 매개변수 변수가 동일한 이름으로 입력됩니다.

3.@PathViriable: 경로 매개변수 값을 정의하는 데 사용됩니다.

●value: 매개변수의 이름

●required: 들어오는 매개변수가 필수 값인지 정의합니다.

@RequestMapping("/{myname}/pathVariable2.do")  public String pathVariable2(@PathVariable(value = "myname") String name){
 
    System.out.println("myname = "+name);    return "index";
 
  }

이 경로는 {myname}을 다음과 같이 선언합니다. 경로 매개변수, 그러면 이 경로는 임의의 값을 가지며 @PathVariable은 값을 기반으로 경로의 값을 가져올 수 있습니다.

4.@ResponseBody: 메서드에 따라 전체 반환 결과가 json 또는 xml 형식과 같은 특정 형식으로 반환될 수 있습니다.

@RequestMapping("/{myname}/pathVariable2.do")
 
   @ResponseBody
 
   public String pathVariable2(@PathVariable(value = "myname") String name){
 
     System.out.println("myname = "+name);
 
     return "index";
 
   }

반환되는 것은 페이지가 아니고 "index"라는 문자열이 페이지에 직접 인쇄되는 것입니다. 이는 실제로 다음 코드와 유사합니다.

PrintWriter out = resp.getWriter();
 
 out.print("index");
 
 out.flush();

5, @CookieValue: 요청의 쿠키 값을 가져오는 데 사용됩니다.

@RequestMapping("/requestParams.do")
 
   public String requestParams(@CookieValue("JSESSIONID") String cookie){
 
     return "index";
 
   }


6, @ModelAttribute:

매개변수를 모델에 저장하는 데 사용되며 메서드에 주석을 달 수 있습니다. 또는 매개 변수, 주석이 메서드에 있는 경우 프로세서 메서드가 실행되기 전에 메서드가 실행되고 반환된 개체는 세션(전제 조건은 @SessionAttributes 주석) 또는 모델 속성 @에 저장됩니다. 마크 내 ModelAttribute("attributeName") 메소드 사용 시 지정하며, 지정하지 않을 경우 반환 유형의 클래스 이름(첫 글자는 소문자)이 속성 이름으로 사용됩니다.

@ModelAttribute("user")
 
  public UserEntity getUser(){
 
    UserEntity userEntityr = new UserEntity();
 
    userEntityr.setUsername("asdf");
 
    return userEntityr;
 
  }
 
  
 
  @RequestMapping("/modelTest.do")
 
  public String getUsers(@ModelAttribute("user") UserEntity user){
 
    System.out.println(user.getUsername());
 
    return "/index";
 
  }

위 코드에서는 컨트롤러를 실행하기 전에 실행되는 @ModelAttribute("user") 주석이 사용됩니다. 그런 다음 컨트롤러에서 주석이 달린 @ModelAttribute를 통해 이를 얻습니다. 매개변수에 모델을 적용한 다음 JSP 페이지(

<body>   ${user.username} </body>

7, @SessionAttributes

)에서도 사용할 수 있습니다. 기본적으로 Spring MVC는 요청의 모델에 데이터를 저장합니다. 필드. 요청이 종료되면 데이터가 유효하지 않습니다. 여러 페이지에서 사용하고 싶다면. 그런 다음 세션을 사용해야 합니다. @SessionAttributes 주석을 사용하면 모델의 데이터 복사본을 세션 도메인에 저장할 수 있습니다. @ModelAttribute("user")와 함께 사용하면 해당 이름의 모델 값이 세션에 저장됩니다.

@Controller
 
@RequestMapping("/test")
 
@SessionAttributes(value = {"user","test1"})
 
public class LoginController{
 
  @ModelAttribute("user")
 
  public UserEntity getUser(){
 
    UserEntity userEntityr = new UserEntity();
 
    userEntityr.setUsername("asdf");
 
    return userEntityr;
 
  }
 
  
 
  @RequestMapping("/modelTest.do")
 
  public String getUsers(@ModelAttribute("user") UserEntity user ,HttpSession session){
 
    System.out.println(user.getUsername());
 
    System.out.println(session.getAttribute("user"));
 
    return "/index";
 
  }
 
}

이전 예제의 코드를 결합하고 @SessionAttributes 주석을 추가한 후 첫 번째로 두 번 요청했습니다. time user라는 속성의 값이 세션에 존재하지 않습니다. 두 번째 요청 시 세션에 다른 값이 있는 것으로 나타났습니다. 이는 첫 번째 세션에서 모델 데이터가 저장되지 않았기 때문입니다. 요청이 종료되고 반환되면 저장하기만 하면 두 번째 요청 시 이미 마지막 모델을 얻을 수 있습니다

참고: @ModelAttribute("user") UserEntity 사용자가 주석 콘텐츠를 얻으면 먼저 세션에 해당 속성 값이 있는지 쿼리한 다음, 없으면 모델을 쿼리합니다.

추천 관련 기사: "Java 개발 튜토리얼"

위 내용은 springmvc에서 일반적으로 사용되는 5가지 주석은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.