[SPRING] lazy-init에 대한 Spring 기본 동작
SPRINGlazy-init에 대한 Spring 기본 동작
나는 초급부터 봄, 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는 시작시 bean을 생성하고 lazy-init = true는 시작할 때 bean을 생성하지 않고 특정 bean에 대한 요청시 bean을 생성합니다. 내 해석이 틀린다면 여기에서 나를 정정하십시오.
lazy-init의 기본 동작은 정확히 무엇입니까? 인스턴스화하는 방법은 무엇입니까?
해결법
-
==============================
1.기본 동작은 false입니다.
기본 동작은 false입니다.
나는 독서를 제안한다.
-
==============================
2.여기에 와서 Java 설정을 사용하고있는 분들은 다음과 같은 주석을 사용하여 Bean을 lazy-init로 설정할 수 있습니다 :
여기에 와서 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; ....... }
-
==============================
3.Bean의 lazy-init = "default"설정은 둘러싼 beans 요소의 default-lazy-init 속성에 의해 설정되는 것을 참조합니다. default-lazy-init의 암시 적 기본값은 false입니다.
Bean의 lazy-init = "default"설정은 둘러싼 beans 요소의 default-lazy-init 속성에 의해 설정되는 것을 참조합니다. default-lazy-init의 암시 적 기본값은 false입니다.
빈에 지정된 lazy-init 속성이 없다면, 항상 열심히 인스턴스화됩니다.
-
==============================
4.lazy-init은 bean의 속성입니다. lazy-init의 값은 true와 false 일 수 있습니다. lazy-init가 true이면 bean에 대한 요청이있을 때 해당 bean이 초기화됩니다. Spring 컨테이너가 초기화 될 때이 빈은 초기화되지 않는다. 과 lazy-init이 false이면 빈은 스프링 컨테이너 초기화로 초기화 될 것이다.
lazy-init은 bean의 속성입니다. lazy-init의 값은 true와 false 일 수 있습니다. lazy-init가 true이면 bean에 대한 요청이있을 때 해당 bean이 초기화됩니다. Spring 컨테이너가 초기화 될 때이 빈은 초기화되지 않는다. 과 lazy-init이 false이면 빈은 스프링 컨테이너 초기화로 초기화 될 것이다.
-
==============================
5.요소의 lazy-init = "default"를 속성으로 사용할 때 컨테이너는 요소의 default-lazy-init = "true | false"속성에 지정된 값을 선택하여 lazy-init = "true | false ".
요소의 lazy-init = "default"를 속성으로 사용할 때 컨테이너는 요소의 default-lazy-init = "true | false"속성에 지정된 값을 선택하여 lazy-init = "true | false ".
default-lazy-init 속성이 lazy-init = "default"보다 엘리먼트에 없으면 엘리먼트는 lazy-init- "false"처럼 동작합니다.
from https://stackoverflow.com/questions/15092898/spring-default-behavior-for-lazy-init by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 클래스 대 메소드에서 @Transactional을 정의하는 것의 차이점은 무엇입니까? (0) | 2019.01.27 |
---|---|
[SPRING] Lombok @Builder 및 JPA 기본 생성자 (0) | 2019.01.27 |
[SPRING] 스프링 보안 3.1을 사용하여 활성 디렉토리에 인증 될 때 역할 처리 (0) | 2019.01.27 |
[SPRING] Spring Servlet 프로젝트의 web.xml에서 contextConfigLocation을로드하는 순서 (0) | 2019.01.27 |
[SPRING] Spring-websocket을 이용한 사용자 권한 기반의 토픽 구독 거부 방법 (0) | 2019.01.27 |