Java/Spring
Spring Security FilterChain 목록 조회(@PostConstruct)
Z_Z
2025. 6. 16. 14:10
반응형
Spring Security 6버전을 설정하면서 문득 FilterChain 의 순서가 궁금하여 찾아보다가 아래 방법으로 목록을 확인했다.
@Autowired
private List<SecurityFilterChain> securityFilterChains;
@PostConstruct
public void printFilters() {
securityFilterChains.forEach(chain -> {
chain.getFilters().forEach(filter -> {
System.out.println("FILTER === "+filter.getClass().getSimpleName());
});
});
}
SecurityFilterChain 목록을 가진 리스트를 @Autowired 를 통해 의존주입을 한다.
@PostConstruct
Spring 에서 빈이 생성되고 의존성 주입이 완료된 후 초기화 작업을 수행해야 하는 메서드에 사용된다.
1. 초기화 작업
- 데이터베이스 연결 설정
- 외부 리소스 초기화
- 캐시 초기화
- 스케줄러 설정
2. 의존성 주입 후 작업
- 의존성 주입이 완료된 후에만 실행해야 하는 작업들
- 다른 빈들의 초기화가 완료된 후 작업이 필요한 경우
예시
@Service
public class MyService {
private final SomeDependency someDependency;
@Autowired
public MyService(SomeDependency someDependency) {
this.someDependency = someDependency;
}
@PostConstruct
public void init() {
// 의존성 주입이 완료된 후 실행되는 초기화 작업
someDependency.initialize();
}
}
주의사항
- @PostConstruct 메서드는 반드시 void 리턴 타입이여야 한다.
- 매개변수 없이 선언해야 한다.
- 한 클래스당 하나의 @PostConstruct 메서드만 허용된다.
- 예외가 발생하면 Spring 컨테이너가 초기화를 실패로 간주한다.
반응형