티스토리 뷰
일반적으로 Spring은 Spring 영역을 벗어나면 Component scan 범위를 벗어나므로 의존 주입을 할 수 없습니다. 본 바탕이 Spring인데 외부 API에 DB를 이용해서 데이터를 적재해야 하는데 dao(data access object)를 Autowired 할 수 없으니 따로 Util을 생성하여 거기에 DB를 적재하고자 생각했습니다. 다만, 이렇게 적용해보니 문제가 Util로 가게 되면 생성되는 Method들이 모두 static으로 선언되어 생성되는데 static 영역에는 Autowired를 사용할 수 없었습니다. 그래도 꼼수로 static 필드에 넣을 수 있는 방법이 있지 않을까 싶어서 검색해보니 역시 위대한 구글신께서 방법을 알려주셨습니다. 방법은 아래와 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Component public class component { private static Dao staticDao; @Autowired private Dao dao; @PostConstruct private void initStaticDao () { staticDao = this.dao; } } | cs |
위와 같이 해주면 아무 문제없이 dao를 사용할 수 있습니다. dao가 Autowired 되지 않아 뜨는 지겨운 Nullpointerexception을 보지 않으셔도 됩니다.
'IT > Framework' 카테고리의 다른 글
Spring boot 2.2.8 Rest API 서버 구축하기(1) (0) | 2020.06.14 |
---|---|
Mybatis - Cursor is closed 해결법 (0) | 2019.07.21 |
Struts2 + Quartz2 scheduler 예제 (0) | 2017.11.04 |
Struts 버전 업그레이드 방법 (0) | 2017.04.16 |
Spring framework 시작하기(3) (0) | 2017.03.26 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday