궁금했던점!스프링시큐리티에서 인증을 처리해주는 과정은 알겠다. 그리고 인증이 성공한다면 SecurityContextHolder에 저장해주는것 까지 알았다. 그렇다면!!!! 내가 계속 궁금했던 점!어떻게 다음 로그인때는 내가 인증이 된 유저라는걸 아는걸까? 당연하다 생각
추상메소드를 딱 하나만 가지고 있는 인터페이스@FunctionalInterface 어노테이션을 붙여서 명시해 줄 수 있다. 이 어노테이션이 붙으면 메소드가 2개 이상일 경우 컴파일에러 발생.위 어노테이션이 없더라도 추상메서드 하나라면 함수형 인터페이스!(args) ->
Profile > Environment의 property인 spring.profiles.active = dev, test등으로 등록하고 @Component, @Configuration or @ConfigurationProperties에 @Profile을 마킹함으로써 환
리소스핸들러는 정적자원에 대한 요청을 처리하는 핸들러이다.어떤 요청 패턴에 대해 지원할 것인지어디서 리소스를 찾을 것인지캐싱ResourceResolver요청에 해당하는 리소스를 찾는 방법ResourceTransformer응답으로 보낼 리소스를 수정하는 전략참조
핸들러 맵핑에 설정할 수 있는 인터셉터핸들러를 실행하기 전, 후, 완료 후시점에 부가작업을 하고 싶은 경우에 할 수 있다.PreHandle요청처리PostHandle응답처리AfterCompletion참조
Object와 String간의 변환을 담당하며 문자열을 Locale에 따라 다국화하는 기능을 제공한다.formmater객체등록스프링의 경우에는 이처럼 Formatter를 등록할 수 있다.스프링 부트의 경우에는 WebConversionService가 Formmater를
@EnableWebMvc어노테이션을 사용하면 Spring Framework에서 여러 Config값을 알아서 세팅해준다.왜?@EnableWebMvc -> DelegatingWebMvcConfiguration -> WebMvcConfigurationSupport 이렇게 타
이벤트 프로그래밍에 필요한 인터페이스 제공. 옵저버 패턴 구현체로 이벤트 기반의 프로그래밍에 유용한 인터페이스이다.옵저버패턴 참고ApplicationEventPublisher 참고
Message를 다국화할 수 있는 기능을 제공하는 Interface이다.스프링 부트에서는 ApplicationContext는 MessageSource 인터페이스를 상속받고 있기 때문에 빈으로 등록이 되어있다.messages\_?.properties 를 통해서 국가별로
런타임시에 동작을 검사하거나 수정하는 것이다.자바와 같은 정적언어에서 사용하면 컴파일 타임에 클래스의 정보를 구체적으로 알지 못해도 실행 중에 클래스에 접근할 수 있다.Spring BeanFactory같은 곳에서 사용된다.예시
.properties파일 대신 .yml파일을 사용할 수 있다.어떻게? classpath에 SnakeYAML Library가 있으면 사용할 수 있다. 그런데 spring-boot-starter가 있으면 자동으로 제공해준다. 따라서 .yml파일을 사용할 수 있다.내부적으로
DispathcerServlet.properties에 기본 전략이 설정되어 있다.특정 타입에 해당하는 빈을 찾고 없으면 기본전략을 사용한다.파일업로드 요청처리에 필요한 인터페이스HttpServletRequest를 MultipartHttpServletRequest로 변환
1\. HandlerMapping핸들러를 찾아주는 인터페이스디자인 패턴 중에 Strategy 패턴이 적용되어 있다.2\. HandlerAdapter핸들러를 실행하는 인터페이스HandlerExceptionResolverViewResolver...요청을 분석한다.Handl
ContextLoaderListener란?ServletContextListener의 구현체로 웹애플리케이션의 시작과 종료 이벤트를 처리하는 리스너.ContextLoaderListener의 역할은 웹애플리케이션이 실행될 때 ApplicationContext를 만들고 se
서블릿과 브라우저간에 요청이나 응답이 이뤄질 때 미리 여러가지 작업을 처리하는 작업을 수행한다. 웹 애플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용할 수 있다.
프로파일과 프로퍼티를 다루는 인터페이스다.그렇다면 Profile과 Property가 무엇일까?Bean들의 그룹이다. 특정 환경에서 어떠한 빈들을 등록할 때 사용할 수 있다.현재 아무런 설정을 하지 않았기 때문에 Active값은 ""이며,Default값은 "default
스프링에서는 빈의 스코프를 싱글톤, 프로토 타입 등으로 설정이가능하며 그에 따라 속해있는 빈들이 상태가 변경될 수 있다.빈을 등록하면 기본값이 싱글톤이므로 싱글톤으로 등록이된다.문제점싱글톤 객체를 사용하게 되면 공유되므로 멀티쓰레드 환경에서 쓰레드세이프하지 않다.Pro
등록된 빈을 주입하여 사용하고 싶을때 사용하는 Annotation필요한 의존객체의 타입에 해당하는 빈을 찾아 주입한다.required의 기본값은 true이므로 빈을 찾지 못하면 App구동 실패.의존성이 옵션일 때는 @Autowired(required = false) 옵