보뇨 다이어리

Spring Context 에 있는 Bean 으로 static field 주입 본문

컴퓨터 관련/Java 정보

Spring Context 에 있는 Bean 으로 static field 주입

보뇨 2021. 4. 24. 11:58
반응형

예전에 회사 작업하다가 공통으로 다루고있던 objectMapper, restTemplate 등이 있었는데
유틸클래스를 사용하기위해서 주입시켜야할때가 있었다
그땐 그냥 클래스쪽에 new 로 생성하고나서 안봤는데..사실 그 방법이 비용적인 측면에서 안좋다고했지만
기능상 문제가 없었기때문에..신경을 안쓴것도 있다

무튼 인터넷에 검색해보니 방법이 딱 2개 나오는데 매우 단순해서 그김에 포스팅할겸 올린다
원래 final 로 선언하고싶은데 그 방법이 통하지않는다..ㅠ


  1. 생성자 주입
@Component
public class Boo {

    private static Foo foo;

    @Autowired
    public Boo(Foo foo) {
        Boo.foo = foo;
    }

    public static void randomMethod() {
         foo.doStuff();
    }
}
  1. PostConstruct 사용
@Component
public class Boo {

    private static Foo foo;
    @Autowired
    private Foo tFoo;

    @PostConstruct
    public void init() {
        Boo.foo = foo;
    }

    public static void randomMethod() {
         foo.doStuff();
    }
}

출처

  1. https://stackoverflow.com/questions/17659875/autowired-and-static-method
반응형