728x90

자주사용되는 데이터 전달객체들은 하단의 주소에 자세히 설명되어있다.

참고주소: https://codevang.tistory.com/247

 

-StereoType-

https://incheol-jung.gitbook.io/docs/q-and-a/spring/stereo-type 

해당주소에 스테레오타입의 정의에 대해서 자세히 설명되어있다.

 

-어노테이션-

-@Repository ,@Service-

위 두 어노테이션에 대해서는 

https://m.blog.naver.com/PostView.naver?blogId=kbh3983&logNo=220908370180& 

해당 주소에서 자세히 설명해주고 있다.

 

-@Autowired, @Inject-

위 두 어노테이션에 대해서는

https://velog.io/@sungmo738/Resource-Autowired-Inject-%EC%B0%A8%EC%9D%B4 

https://codevang.tistory.com/256

해당 두 주소가 자세히 설명해주고 있다..

 

-@RequestParam-

client -> server 로 단일 데이터를 옮기는데 사용되고, 메소드의 파라미터로 쓰인다.

 

@RequestParam 문법 :

@RequestParam(value="checkbox",required=false,defaultValue="0") 자료형타입 변수명

value(필수) : client에서 전달해준 key값

required(필수x) : true로 지정할시 넘어오는 key값이 없다면 에러발생, false로 지정할시

                      넘어오는 키값이 없더라도 정상작동됨(대신 null이 변수에 들어감)

defaultValue(필수x) : "required=false" 일 경우에, 변수에 설정해준 defaultValue값을 넣어줌.

자료형타입 변수명(필수) : value="checkbox"에 매칭되는 값이 대입된다.

 

본인은 단일 checkbox 체크유무를 위하여 사용하였다.

하단의 샘플은 @RequestParam을 사용한 예시중 어노테이션 부분위주로만 뽑았다.

1
2
3
4
5
6
7
8
9
@RequestMapping(value="/Login",method = RequestMethod.POST)
public String postLogin(@RequestParam(value="checkbox",required=falseString checked,~) {
    ~~
    if(checked!=null
        session.setMaxInactiveInterval(-1); //web.xml
    else 
        session.setMaxInactiveInterval(60*30);
    ~~    
}
cs

 

checkbox에서는 name="checkbox"로 설정되어있으며 , checkbox는 form 태그내부에 존재한다.

2 : checked 에 value="checkbox" 와 매칭되는 값이 들어온다.

defaultValue를 지정해주지 않았으므로 , 들어오는 값이 없다면 기본적으로 null이 checked에 들어간다. 

4~7 : checked가 null인가 아닌가로 구분하여 셋팅해주었다.

참고로, checkbox가 선택됬다면 값은 기본적으로 "on"이 들어오게 될것임.

 

-@RequestMapping-

client->server로 오는 url을 mapping 시켜준다. or redirect,forward로 server->server 오는 url을 매핑시켜준다.

문법:

@RequestMapping(value= {"/","/main"},method = RequestMethod.GET)

value(필수) : 매핑될 url , 다수url 매핑을 원할시 위와 같이 작성해줌.

method(필수x) : method를 작성해주지 않을시 post, get 방식모두 허용해줌

참고로,,, Spring 4.3부턴

HTTP 메소드들로 restful하게

@PostMapping,@GetMapping,@PutMapping,@DeleteMapping,@PatchMapping  

해당 5가지가 더 지원된다고 한다..

 

하단의 샘플은 웹의 루트인 url : / 와 url :/main 을 같이 묶어 주었다. 

1
2
3
4
@RequestMapping(value= {"/","/main"},method = RequestMethod.GET)
    public String main() {
        return "main";
}
cs

 

------------------------------------------------Lombok-------------------------------------------

@Getter, @Setter, @ToString, @EqualsAndHashCode , @RequiredArgsConstructor, @NoArgsConstructor , @AllArgsConstructor , @Data 

 

@Getter : Getter 메소드가 자동으로 생성

 

@Setter : Setter 메소드가 자동으로 생성

 

@ToString : toString 메소드를 자동으로 생성

 

@EqualsAndHashCode : Equals 와 HashCode 메소드를 자동으로 생성

 

@RequiredArgsConstructor : final이나 @NonNull로 지정된 필드 값만 파라미터로 받는 생성자를 만들어줍니다.

 

@NoArgsConstructor : 파라미터가 없는 기본 생성자를 생성해줌

 

@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만들어줌

 

@Data : 클래스레밸에서 해당 Annotation 이용시 , Lombok에서 지원하는 윗 어노테이션기능들을 모두 수행해준다. (@RequiredArgsConstructor 가 선택됨 )

 

-참고주소

https://stackoverflow.com/questions/37359851/how-to-receive-html-check-box-value-in-spring-mvc-controller

https://www.daleseo.com/lombok-popular-annotations/ (Lombok)

+ Recent posts