@Bean Annotation @Configuration @Autowired
"Bean": 스프링 프레임워크에서 관리하는 객체
@Configuration : 빈(bean) 정의 및 의존성 주입 등 다양한 설정을 포함할 수 있다.
1.빈 등록: @Bean 어노테이션과 함께 사용하여 스프링 컨테이너에 빈을 등록. 이를 통해 다른 클래스에서 필요할 때 주입하여 사용할 수 있다.
2.의존성 주입: @Autowired나 @Inject와 같은 어노테이션을 사용하여 다른 빈들 간의 의존성을 주입한다.
3.환경 설정: @PropertySource 어노테이션을 사용하여 외부 설정 파일을 읽어들일 수 있다.
4.프로필 설정: @Profile 어노테이션을 사용하여 개발, 테스트, 운영 등 다양한 환경에 맞는 빈 설정을 구성할 수 있다.
//svc interface
public interface MyService {
String getMessage();
}
//svc Impl
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class MyServiceImpl implements MyService {
private final MyRepository myRepository;
@Override
public String getMessage() {
return myRepository.getMessage();
}
}
//DAO interface
public interface MyRepository {
String getMessage();
}
//DAO Impl
public class MyRepositoryImpl implements MyRepository {
@Override
public String getMessage() {
return "Hello from MyRepositoryImpl";
}
}
@Configuration
public class AppConfig {
@Bean
public MyService myService(MyRepository myRepository) {
return new MyServiceImpl(myRepository);
}
@Bean
public MyRepository myRepository() {
return new MyRepositoryImpl();
}
}
//Controller
@RestController
public class MyController {
private final MyService myService;
@Autowired
public MyController(MyService myService) {
this.myService = myService;
}
@GetMapping("/message")
public String message() {
return myService.getMessage();
}
}
'스프링부트' 카테고리의 다른 글
데이터베이스 조회 및 조작 제네릭타입 (0) | 2023.04.13 |
---|---|
파일 이름 유효한지 확인하고, 파일에서 숫자를 로드하는 방법 (0) | 2023.04.13 |
파일 처리에 유용한 Generic type ex code (0) | 2023.04.13 |
객체와 데이터베이스의 로맨스: 엔티티 클래스 (Entity Class) (0) | 2023.04.13 |
김영한 Springboot course/자바 ORM 표준 JPA 프로그래밍 데이터베이스 방언 (0) | 2023.04.13 |