@AutoWired란?스프링은 생성자 주입(Constructor Injection), 세터 주입(Setter Injection), 필드 주입(Field Injection) 이라 불리는 의존성을 주입하기 위한 세가지 방법을 제공한다. 그리고 이들은 @AutoWired란 어노테이션을 통해 주입된다. 지금부터 이 세가지 방법을 알아보자. 생성자 주입생성자 주입을 하기 위해서는 생성자 함수 constructor가 필요하다. constructor 앞에 @Autowired를 사용함으로써 생성자 주입을 할 수 있다. 예를 들어 UserCreator이 UserRepository를 주입 받는다면 다음과 같이 작성이 가능하다.@Componentclass UserCreator @Autowired constructor( ..
코프링
@Component를 사용하지 못하고 @Bean을 사용해야 하는 경우@Component 어노테이션은 클래스 위에 붙는다. 즉, 내가 클래스를 만들 수 있을 때만 사용할 수 있다. 예를 들어 외부 라이브러리의 클래스를 Bean으로 만들 경우 @Component를 사용할 수는 없다. 예를 들어 A메신저에서 라이브러리를 제공하는데, 이 라이브러리에는 A메신저의 채팅방에 알림을 보내기 위한 AChatService 라는 클래스를 제공한다고 해보자.// 다른 라이브러리의 클래스라서 수정할 수 없다고 가정class AChatService() { fun sendMessage(message: String) { println("Message sent: $message") }} 이런 경우 우리는 A..