2020.04.14 처음부터, 스프링 - AutoWiring

@Autowired가 붙어있는 field가 있다면 자동으로 Component로 등록해 둔 클래스들 중에서 그 클래스를 찾은 뒤 Inject 시켜준다.

만약 Component로 등록 된 클래스가 하나라면 그 클래스만 무조건 Inject하게 된다.
클래스가 여러 개인 경우는 아직 안 배웠는데 적절히 Config 해줄 수 있는 듯 하다.

@Autowired까지 써보니까 이제 DI가 어떤 부분이 크게 다른지 느낌이 조금은 온다.

파이썬, 플라스크 같으면 Class를 선언하고, 해당 클래스를 초기화 할 때 혹은 초기화 한 뒤 필드 값을 set하는 방식을 주로 사용할 것이다.

반면에 Spring은 Bean을 미리 초기화, 조립해서 만든 뒤에 실제 코드 실행부로 넘겨준다.
Spring의 Bean은 파이썬에서 모델과 비슷하게 이해할 수 있을 것 같다.

이 방식의 장점은 매 번 필드값을 수동으로 설정하지 않더라도 쉽게 값을 set/get할 수 있다는 것과 모델의 생성 책임을 스프링이 져준다는 것인 것 같다.

댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용