728x90
반응형
Spring 프레임워크에서 @Autowired 어노테이션은 자동 의존성 주입을 강력한 도구로 사용됩니다.
@Autowired을 통해 Spring은 Application Context에서 필요한 Bean을 찾아서 해당 필드에 주입합니다.
이를 통해 코드의 가독성과 유지보수성을 높이고, 의존성 주입에 대한 번거로움을 줄일 수 있습니다.
@AutoWired 개념
생성자, 필드, 메서드 등의 위치에 사용됩니다.
주로 의존성을 주입받아야 할 대상에 어노테이션을 적용하며 Spring에 해당 객체를 주입하도록 지시합니다.
1. 생성자 주입
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
// 나머지 코드
}
2. 필드 주입
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
// 나머지 코드
}
3. Setter 주입
@Service
public class MyService {
private MyRepository myRepository;
@Autowired
public void setMyRepository(MyRepository myRepository) {
this.myRepository = myRepository;
}
// 나머지 코드
}
다음은 예제 코드로 살펴보겠습니다.
간단한 예제를 통해 @Autowired 어노테이션의 사용법을 살펴보겠습니다.
1. 서비스 클래스
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
public void doSomething() {
myRepository.doDatabaseOperation();
}
}
2. 리포지토리 클래스
@Repository
public class MyRepository {
public void doDatabaseOperation() {
// 데이터베이스 동작 수행
}
}
3. 컨트롤러 클래스
@Controller
public class MyController {
private final MyService myService;
@Autowired
public MyController(MyService myService) {
this.myService = myService;
}
@GetMapping("/execute-operation")
public String executeOperation() {
myService.doSomething();
return "operation-success";
}
}
@Autowired의 장점
- 의존성 주입의 자동화 : Spring이 의존성 주입을 자동으로 처리해주므로 개발자는 직접 의존성을 주입하는 코드를 작성하지 않아도 됩니다.
- 가독성과 편의성 향상 : 코드의 가독성이 향상되고, 필요한 의존성을 주입하는데 필요한 코드의 양이 줄어듭니다.
- 유연성 : 주입받아야 할 의존성이 변경되더라도 코드 수정이 간단하게 이루어집니다.
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] AOP 프로그래밍이란 ? (1) | 2024.01.25 |
---|---|
[Spring] Autowired 와 수동 Bean 등록 (@Qualifier) (0) | 2024.01.24 |
[Spring] 의존성 주입 - 세터 주입, 생성자 주입방식과 비교 (0) | 2024.01.23 |
[Spring] 의존성 주입 (DI) - 생성자 주입 (2) | 2024.01.22 |
[Spring] 빈 생명주기 콜백 (0) | 2023.02.14 |