backend/Spring

[Spring] 세터 주입(Setter Injection)의 대안

버리야 2008. 2. 5. 14:28
반응형

세터 주입(Setter Injection)의 대안 - 생성자 주입(Constructor Injection)


세터 주입은 빈 특성을 설정하고 묶을 수 있는 직관적인 방법이지만, 한 가지 단점은

변경될 수 있는 모든 특성이 세터 메소드를 통해서 사용할 수 있다고 가정하는 것에 있다. 하지만 빈이 이와 같은 방식으로 작동하기를 원하지 않을 때,

이런 유형의 빈이 인스턴스화될 때에는 어떤 특성도 설정될 수 없으며, 따라서 빈이 유효하지 않은 상태로 있을 가능성이 있다.


어떤 특성들은 빈이 생성될 때 한 번만 설정되고 그 이후에는 변경될 수 없도록 만들고 싶은 경우도 있다.

이는 세터를 통해 모든 특성을 공개하는 경우에는 곤란해진다.




대안은 일부 특성들은 생성자 를 통해 설정될 수 있도록 빈을 설계하는 것이다.

DAO의 DataSource와 같이 반드시 설정돼야 하고 변경되어서는 안 되는 특성이 있는 경우에 특히 유용



생성자 주입은, 어떤 특성을 설정하지 않고서는 인스턴스를 만들 수 없을 때,


세터 주입은, 빈의 특정 메소드에서만 쓴다던가, 필요할 때 설정될 수 있도록 설정하는 것이 좋다.





반응형