lazy-init에 대한 스프링 기본 동작
저는 봄에 초보자입니다, ESP 제어반전.저는 다음과 같은 것들의 차이를 이해하는 것이 혼란스러웠습니다.
<bean id="demo" class="Demo" lazy-init="false"/>
<bean id="demo" class="Demo" lazy-init="true"/>
<bean id="demo" class="Demo" lazy-init="default"/>
내가 알기로는 lazy-init=false는 시작할 때 빈을 만들고 lazy-init=true는 시작할 때 빈을 만들지 않고 특정 빈을 요청하면 빈을 만듭니다.제 해석이 틀렸다면 여기서 고쳐주세요.
lazy-init의 기본 동작은 정확히 무엇입니까?어떻게 인스턴스화할까요?
기본 동작은 false입니다.
기본적으로 ApplicationContext 구현은 초기화 프로세스의 일부로 모든 싱글톤 빈을 열심히 만들고 구성합니다.일반적으로 몇 시간 또는 며칠이 지난 후가 아니라 구성 또는 주변 환경의 오류가 즉시 발견되기 때문에 이러한 사전 인스턴스화가 바람직합니다.이 동작이 바람직하지 않은 경우 빈 정의를 게으르게 초기화된 것으로 표시하여 싱글톤 빈의 사전 인스턴스화를 방지할 수 있습니다.게으르게 초기화된 빈은 시작할 때가 아니라 처음 요청될 때 빈 인스턴스를 만들라고 IoC 컨테이너에 말합니다.
여기에 와서 Java 구성을 사용하는 사용자는 다음과 같은 주석을 사용하여 Bean을 lazy-init으로 설정할 수 있습니다.
구성 클래스:
@Configuration
// @Lazy - For all Beans to load lazily
public class AppConf {
@Bean
@Lazy
public Demo demo() {
return new Demo();
}
}
구성 요소 스캔 및 자동 배선의 경우:
@Component
@Lazy
public class Demo {
....
....
}
@Component
public class B {
@Autowired
@Lazy // If this is not here, Demo will still get eagerly instantiated to satisfy this request.
private Demo demo;
.......
}
그lazy-init="default"
콩에 세팅은 오직 콩에 의해 설정된 것을 의미합니다.default-lazy-init
둘러싸는 콩 요소의 속성입니다.의 암묵적 기본값:default-lazy-init
이라false
.
없는 경우lazy-init
콩에 지정된 속성은 항상 열심히 인스턴스화됩니다.
lazy-init은 콩의 속성입니다.lazy-init 값은 true 및 false일 수 있습니다.lazy-init이 참이면 been에 대한 요청이 있을 때 해당 been이 초기화됩니다.스프링 컨테이너가 초기화될 때 이 빈은 초기화되지 않으며 lazy-init이 거짓이면 스프링 컨테이너 초기화로 빈이 초기화됩니다.
요소에서 lazy-init="default"를 속성으로 사용하면 컨테이너는 요소의 default-init="true|false" 속성으로 지정된 값을 선택하여 lazy-init="true|false"로 사용합니다.
default-init 특성이 요소에 lazy-init="default"가 아닌 경우 요소에 lazy-init-"false"처럼 동작합니다.
언급URL : https://stackoverflow.com/questions/15092898/spring-default-behavior-for-lazy-init
'programing' 카테고리의 다른 글
Spring + Web MVC: dispatcher-servlet.xml vs. applicationContext.xml (및 공유 보안) (0) | 2023.07.26 |
---|---|
최대 절전 모드가 필드에 잘못된 유형을 설정하려고 합니다(Spring Data JPA). (0) | 2023.07.26 |
서비스 계층 및 컨트롤러: 무엇을 담당합니까? (0) | 2023.07.26 |
스프링 자동 배선 aop 원형 종속성 (0) | 2023.07.26 |
봄에 내 인증 필터 내에서 서비스를 자동 배선할 수 없음 (0) | 2023.07.26 |