@EnableWebSecurity -@Configration 클래스에 @EnableWebSecurity 어노테이션을 추가하여 SpringSecurity 설정할 클래스라고 정의한다. 설정은 WebSecurityConfigurer인스 클래스를 상속받아메서드를 구현하는 것이 일반적인 방법이다. WebSecurityConfigureer 클래스 -WebSecurityConfigurer 인스턴스를 편리하게 생성하기 위한 클래스이다. passwordEncoder() - BCryptPasswordEncoder는 SpringSecurity에서 제공하는 비밀번호 암호화 객체이다. Service에서 비밀번호를 암호화할 수 있도록 Bean으로 등록한다. configure()메서드를 오버라이딩하여 Secuity 서렁을 잡아준다..
inline : th:text를 사용하면 태그 사이에 작성한 내용은 사라지고 th:text 값으로 덮어씌어집니다. 이를 해결하기 위해 th:inline 을 사용하며 변수는 [[ ${} ]] 으로 표기합니다 RESTful API 작성을 위해 이런식으로 표기합니다 그러면 form 태그의 method는 post이지만 실제로는 컨트롤러에서 delete로 매핑이됩니다 hiddenHttpMethodFilter 이용합니다. /**/ ->JS에서 Java변수를 사용하기 위한 방십입니다. 반환값은 Optional 타입인데 엔티티를 쏙 빼오려면 Optional a = respository.findById(id); 타입 b =a.get() 이런식으로 a의 엔티티를 빼내어 b에 담습니다.
| @ModelAttribute 이란? 클라이언트가 전송하는 여러개의 파라미터들을 1:1로 객체에 바인딩 하여 다시 View로 넘겨서 출력하기 위해 사용되는 Object입니다. 매핑시키는 파라미터의 타입이 객체의 type과 일치하는지를 포함한 다양한 검증(Validation) 작업이 추가적으로 진행됩니다. ( 예를들어, 게시물 번호를 저장하는 int형 index 변수에 "1"이라는 String 값을 넣으면 BindException 발생 ) @RequestBody의 경우 Json이나 XML을 Jackson과 같은 MessageConverter를 사용하면 변환하지만, 이 어노테이션은 여러 개의 파라미터를 바로 java bean 객체로 mapping 시킵니다. 즉, JSP에서 form 태그를 통하여 전달받은 ..
Spring에서 API구현 시 주로 사용되는 @RequestBody, @ResponseBody ,@ModelAttribute어노테이션의 개념에 대해 확실하게 알고 넘어가보자. ex) Web Page에서 json으로 request한 파라미터들을 java에서 받으려면 java Object type으로 변환이 필요하다. 마찬가지로 response시에도 java object에서 json으로 변환이 필요로하다. web에서 받은 data는 java에서 사용 시 : web -> (javaObject로 변환 ) - > java에서 활용 java에서 web으로 data 보낼 시 : java -> ( json Object로 변환) -> web 이러한 작업들을 해주는 어노테이션이 바로 @RequestBody와 @Respon..
메시지 컨버터는 XML이나 JSON을 이용한 AJAX 기능이나 Web Service를 개발할 때 사용할 수 있습니다. HTTP요청 프로터피를 모델 오브젝트의 프로터피에 개별적으로 바인딩 하고 모델 오브젝트를 다시 뷰를 이용해 클라이언트로 보낼 콘텐츠를 만드는 대신 HTTP요청에 메시지 본문과 HTTP 응답 메시지 본문을 통째로 메시지로 다루는 방식입니다. 메시지 컨버터는 파라미터의 @RequestBody와 메소드에 부여한 @ResponseBody를 이용합니다. | 메시지 컨버터의 종류 사용할 메시지 컨버터는 AnnotationMethodHandlerAdapter를 통해 등록합니다. 1. ByteArrayHttpMessageConveter - 지원하는 오브젝트 타입 : byte[] - @RequestBod..
| @RequestMapping의 produces 속성을 이용하여 Response의 Content-Type을 제어할 수 있다. @Consumes : 수신 하고자하는 데이터 포맷을 정의한다. @Produces : 출력하고자 하는 데이터 포맷을 정의한다. 실시간 베스트 글 혹시 국비지원이나 사설학원 (패스트 캠퍼스 등) 다니는 중이신가요? 현직 5년차가 직접 겪은 국비지원 패스트캠퍼스 후기 보러가기 국비지원 패스트캠퍼스 후기 현직 5년차 개발자가 알려주는 코딩학원 현실 국비지원 패스트캠퍼스 후기 현직 개발자가 경험한 코딩학원 선택 기준 및 현실에 대해 알려드립니다. 이런 분들은 절대 수업 듣지도 마세요. www.allinfospace.com 1.요청헤더 사용하기 최근의 추세는 요청 URl을 통해 응답할 데이..
지난번에 @RequestParam으로 값을 많이 바인딩 시키면 코드가 지저분해지는 경우가 있을텐데 이번에는 커맨드객체를 활용하여 코드 가독성을 조금 더 높여보도록한다 ! 웹 프로젝트 개발 시 "인쇄하기"라는 기능이 있어서 다른 view.jsp 에서 값을 컨트롤러를 타야 하는 경우가 있었는데 이럴때 model에 값을 엄청 많이 binding 시켜줬던 기억이있다. 이제는 Command 객체를 활용하여 이러한 경우를 대비해 볼 것이다. ! 회사에서 작성했던 코드 @GetMapping("/print") public void testMethod(@Request Param . . . (수만은 RequestParam이 적히고) ){ model.addattrubute("사용할 data들 ", ... ); model.a..
컨트롤라에서 Requestparam으로 파라미터 값을 넘겨받을 때 아무 생각 없이 사용하곤 했는데, 이번 기회에 이 어노테이션에 대해 정리해 보고자 한다. 스프링에서는 컨트롤러로 사용할 클래스 상단에 @Controller를 지정합니다. 주로 사용하는 형태의 파라메터를 전달하는 경우입니다. Case 1 ) http://xxx.x.x?index=1&page=2 Case 2 ) http://xxxx.x.x/index/1 Case 1의 경우 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용합니다. Case 2의 경우 Rest api에서 값을 호출할 때 주로 많이 사용합니다. Spring에서는 이러한 전달인자를 처리하는데 두 가지 방법을..