@SpringBootApplication 역할 나누기
□ @SpringBootApplication 역할 클래스를 두개 이상으로 쪼갤 수 있다
(단, main 메서드는 쪼개서 사용할 수 없음)
main 메서드 외 역할 = @SpringBootApplication
그러므로 메인기능을 하는 클래스와 ComponentScan 역할만 할 수 있음
§ 컴포넌트 스캔 기능과 메인메서드 기능을 나눈 모습

※ 참고로 DI대상 객체의 생명주기 (디자인)을 @SpringBootApplication 클래스에서 설정할 수 있다.
@SpringBootApplication
@ComponentScan(basePackages = "com.example.ex1")
public class Ex1Application2 {
A target1;
@Bean // A객체를 반환하여 Spring Bean pool에 등록한다. ( pool : Collection )
@Scope("singleton")
A getA() {
return new A();
}
}
@Scope("singleton") // 하나의 Bean의 생명주기를 단계별로 나눌수 있다, 자주 사용하는 건 "singleTon", "prototype"
// "singleTon" : Autowired를 많이 하더라도 하나의 인스턴스로 호출 , "prototype" : Autowired를 할때마다 다른 인스턴스로 호출
// prototype 을 사용하려면 Autowired를 사용할때마다 주석으로 표시를 해야하므로, new 연산자를 사용하여 유연하게 설계
'SPRING' 카테고리의 다른 글
좋은 객체지향 프로그램과 스프링 (0) | 2024.12.16 |
---|---|
[ajax] 키:값 배열 객체에 담고 배열로 순환 사용 (0) | 2024.12.11 |
[Rest API]퍼머링크 형식와 일반적인 URL 형식 (0) | 2024.12.10 |
@Scheduled / @Validation / View Mapping 방법 (0) | 2024.12.10 |
[LOMBOK]@AllArgsConstructor (롬복기능) (0) | 2024.12.10 |