전체 글

https://sundaland.tistory.com/478 ▶ Instantiating the Spring Container by Using AnnotationConfigApplicationContext Spring 3.0에 도입된 Spring의 AnnotationConfigApplicationContext를 설명한다. 이 다재다능한 ApplicationContext 구현은 @Configuration 클래스뿐만 아니라 일반 @Component 클래스와 JSR-330 메타데이터로 어노테이션이 달린 클래스도 입력으로 허용할 수 있다.@Configuration 클래스가 입력으로 제공되면 @Configuration 클래스 자체가 빈 정의로 등록되고 클래스 내에서 선언된 모든 @Bean 메서드도 빈 정의로 등록..
https://sundaland.tistory.com/475 ▶ Fine-tuning Annotation-based Autowiring with Qualifiers@Primary는 여러 인스턴스가 있을 때 특정 후보를 자동 주입하는데 유용하다. 하지만 선택 과정을 더 세밀하게 제어해야 할 때는 스프링은 @Qualifier 어노테이션을 사용할 수 있다. @Qualifier를 사용하면 특정 아규먼트에 qualifier을 연결하여 타입 일치의 범위를 좁히고, 특정 빈이 각 아규먼트에 선택되도록 할 수 있다. 가장 단순한 경우는 아래 예시에ㅘ 같은 간단한 설명적 값일 수 있다.public class MovieRecommender { @Autowired @Qualifier("main") priva..
https://sundaland.tistory.com/474 스프링은 어노테이션 기반 구성에 대한 포괄적인 지원을 제공하며, 어노테이션을 클래스, 메서드 또는 필드 선언에 사용하여 컴포넌트 클래스 자체의 메타데이터로 작동한다. 예를 들어, 스프링은 BeanPostProcessor를 어노테이션과 함께 사용하여 핵심 IoC 컨테이너가 특정 어노테이션을 인식할 수 있도록 한다. 예를 들어, @Autowired 어노테이션은 Autowiring Collaboratros에서 설명된 것과 동일한 기능을 제공하지만, 더 세밀한 제어와 더 넓은 적용 범위를 가진다. 또한 스프링은 @PostConstruct와 @PreDestory와 같은 JSR-250 어노테이션에 대한 지원뿐만이 아니라, jakarta.inject 패키지..
https://sundaland.tistory.com/472 ▶ Bean Scopes빈 정의를 생성할 때, 해당 빈 정의에 의해 정의된 클래스의 실제 인스턴스를 생성하기 위한 레시피를 만든다. 빈 정의가 레시피라고 하는 이유는, 클래스와 마찬가지로 하나의 레시피에서 많은 객체 인스터스를 생성할 수 있다는 것을 의미하기 때문이다. 특정 빈 정의에서 생성된 객체에 주입될 다양한 의존성과 구성 값 뿐만이 아니라, 특정 빈 정의에서 생성된 객체의 범위를 제어할 수도 있다. 이 접근 방식은 강력하고 유연한데, 이는 자바 클래스 수준에서 객체의 범위를 구체화하는 대신 구성을 통해 생성하는 객체의 범위를 선택할 수 있기 때문이다. 빈은 여러 범위 중 하나로 정의될 수 있다. 스프링 프레임워크는 여섯 가지 범위를 지원..
▶  jwt.TokenProvider 클래스더보기@Slf4j@Componentpublic class TokenProvider implements InitializingBean { private static final String AUTHORITIES_KEY = "auth"; private final String secret; private final long accessTokenValidityInMilliseconds; private final long refreshTokenValidityInMilliseconds; private Key key; @Autowired private RefreshTokenRepository refreshTokenRepository; ..
▶ SecurityConfig 클래스@Configuration@EnableWebSecurity@RequiredArgsConstructorpublic class SecurityConfig { private final TokenProvider tokenProvider; private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; private final JwtAccessDeniedHandler jwtAccessDeniedHandler; ...}@Configuration: Spring에 이 클래스가 애플리케이션의 설정을 정의하는 클래스임을 알린다. Spring 컨테이너가 이 클래스를 스캔하여 Bean을 생성한다.@Enabl..
▶ JwtSecurityConfig 클래스더보기@RequiredArgsConstructorpublic class JwtSecurityConfig extends SecurityConfigurerAdapter { private final TokenProvider tokenProvider; @Override public void configure(HttpSecurity http) { http.addFilterBefore( new JwtFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class ); }}▷ JwtSecurityConfig 클래스 해..
▶ JwtFilter 클래스@Slf4j@RequiredArgsConstructorpublic class JwtFilter extends GenericFilterBean { public static final String AUTHORIZATION_HEADER = "Authorization"; private final TokenProvider tokenProvider; ...}@Slf4j: Lombok의 어노테이션으로, log 객체를 자동으로 생성한다. 이 객체는 로깅을 위해 사용된다. 코드 내에서 로깅을 통해 디버깅이나 오류 메시지를 기록할 수 있다.@RequiredArgsConstructor: Lombok의 어노테이션으로, final로 선언된 필드를 포함하는 생성자를 자동으로 생성한다. ..
GLaDiDos
GLaDiDos의 티스토리