org.springframework.security.filterChains web.xml ->해당 오류는 필터가 등록이 된 후 bean을 등록하고 시큐리티 설정파일을 읽어야하는데 보동 저 xml 설정파일을 위에 같이 적는 경우가 많았다 밑으로 빼주니 해결. 빈등록 후 설정파일을 읽음. servlet-context.xml org.springframework.beans.factory.BeanCreationException -> context:component-scan과 dao에서 @Repository를 같이 혼용하여 사용하는 경우 빈이 2번 등록된다. 따라서 둘 중 하나만 사용하도록 하자... 나는 context-component를 주석처리 하였다 물려받은 프로젝트 모두 dao에 @Repository가 적혀..
| @InitBinder란? " Spring Validator를 사용 시 @Valid 어노테이션으로 검증이 필요한 객체를 가져오기 전에 수행할 method를 지정해주는 어노테이션이다." 기존에 @Valid OR @Validated 애노테이션으로 데이터 검증을 위해 Validator interface를 구현한 class를 만들고 validate() 메소드를 직접 호출해 사용했는데, 이번에는 @InitBinder 어노테이션으로 직접 호출하지 않고 스프링 프레임 워크에서 호출하는 방법에 대해서 알아보겠습니다. Ex 01) StrudentController에서 활용 @Controller pulbic calss StudentController { @RequestMapping("/studentForm") publi..
| @SessionAttributes란? 모델(Model) 정보를 HTTP 세션에 저장해주는 애노테이션입니다. HttpSession을 직접 사용할 수도 있지만 이 애노테이션에 설정한 이름에 해당하는 모델 정보를 자동으로 세션에 넣어줍니다. @ModelAttribute는 세션에 있는 데이터도 바인딩합니다. 여러 화면(또는 요청)에서 사용해야 하는 객체를 공유할 때 사용합니다. ex) 장바구니, 여러 화면에 걸쳐 나눠진 회원가입 등 또한 @SessionAttributes를 사용하면 @ModelAttribute OR model.addAttribute()를 활용하여 객체를 저장할 경우 세션에 저장이 되도록 지정할 수 있습니다. ( * 이러한 경우에는 세션이 제거되거나 SessionStatus 객체를 사용하여 명..
| Custom Annotation(커스텀 애노테이션)이란? 메타 애노테이션 조합 애노테이션 커스텀 애노테이션 선언 public @interface userAnnotation{} // 커스텀 애노테이션 선언 - @interface와 함께 사용할 이름을 적어주면 커스텀 애노테이션이 완성됩니다. - 이 애노테이션을 클래스,필드,메서드 같은 곳에 붙이션 애노테이션으로써 껍데기 같은 역할은 할 수 있습니다. //커스텀 애노테이션 사용 예 @userAnnotation public class explain{ public static void main(String[] args){ System.out.println("Hello World"); } } 하지만, (커스텀 애노테이션 로직이 작성 되어있다는 가정 하) 위와 ..
springboot에서는 properties의 이름을 application-xxx.properties로 만들면 " xxx " 라는 이름의 profile이 생성되어 이를 통해 관리할 수 있습니다. 즉, profile=xxx라는 식으로 호출하면 해당 properties의 설정들을 가져올 수 있습니다. 호출하는 방식은 여러 방식이 있지만 스프링 부트의 기본 설정 파일인 application.properties에서 application-oauth.properties를 포함하도록 구성할 수 있습니다. application.properties의 내용 중 일부 ex ) spring.profiles.include=oauth 이런식으로 선언해주면 oauth라는 설정파일을 사용할 수 있습니다.. .gitignore 등록 ..
스프링 프레임워크에서는 REST 서비스의 Endpoint를 호출할 수 있도록 크게 2가지 방식인 동기와 비동기 REST Client를 제공합니다. RestTemplate - spring 3부터 지원 되었고 REST API 호출이후 응답을 받을 때까지 기다리는 동기방식입니다. AsyncRestTemplate - spring 4에 추가된 비동기 RestTemplate입니다. - spring 5.0에서는 deprecated 되었습니다. WebClient - Spring 5에 추가된 논블럭, 리엑티브 웹 클라이언트로 동기, 비동기 방식을 지원합니다. RestTemplate는 Spring에서 제공하는 다른 여러 Template class ex)JdbcTemplate, RedisTemplate 와 동일한 원칙에 따..
@EnableWebSecurity -@Configration 클래스에 @EnableWebSecurity 어노테이션을 추가하여 SpringSecurity 설정할 클래스라고 정의한다. 설정은 WebSecurityConfigurer인스 클래스를 상속받아메서드를 구현하는 것이 일반적인 방법이다. WebSecurityConfigureer 클래스 -WebSecurityConfigurer 인스턴스를 편리하게 생성하기 위한 클래스이다. passwordEncoder() - BCryptPasswordEncoder는 SpringSecurity에서 제공하는 비밀번호 암호화 객체이다. Service에서 비밀번호를 암호화할 수 있도록 Bean으로 등록한다. configure()메서드를 오버라이딩하여 Secuity 서렁을 잡아준다..