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 컨테이너가 초기화를 실패로 간주한다.
반응형