> Java > java지도 시간 > Java 구성의 default-lazy-init='true' 구성을 간략하게 설명하세요.

Java 구성의 default-lazy-init='true' 구성을 간략하게 설명하세요.

Y2J
풀어 주다: 2017-05-09 13:31:57
원래의
2630명이 탐색했습니다.

아래 편집기에서는 봄의 default-lazy-init 매개변수와lazy-init에 대해 간략하게 설명합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집기를 따라가서 살펴보겠습니다.

스프링 구성의 루트 노드에 default-lazy-init="true" 구성이 있습니다.

1 . spring의 default-lazy-init 매개변수

이 매개변수는 지연된 로딩을 나타냅니다. 즉, 가 프로젝트를 시작하지 않는 한 프로젝트가 시작될 때 주석이 달린 Bean이 인스턴스화되지 않습니다. 🎜> 사용해야 하며, 프로그램이 실제로 호출에 액세스할 때 인스턴스화되지 않은 객체 가 주입되고 호출됩니다.

스프링이 시작되면 default-lazy-init 매개변수의 기본값은 false이고 초기화

ACTION 구성부터 서비스 구성, dao 구성, 데이터베이스 연결, 트랜잭션 등 전체 객체 인스턴스 다이어그램이 기본적으로 로드됩니다. 이는 런타임 동안 웹 서버의 부하를 줄일 수 있지만, 개발자에게는 의심할 여지 없이 매우 비효율적인 설정입니다.

spring은 default-lazy-init 속성 을 제공하며 해당 구성 형식은 applicationContext.xml에서 다음과 같습니다.

< beans default-lazy-init ="true" >
  ....... 
</beans>
로그인 후 복사

실제 개발에서는 default-lazy-init 속성을 true로 설정하면 프로젝트 시작 시간을 크게 줄일 수 있습니다

2. Spring

1.lazy-init

<beans> 
   <bean id="service1" type="bean路径" lazy-init="true"/> 
   <bean id="service2" type="bean路径" lazy-init="false"> 
       <property name="service1" ref="service1"/> 
   </bean> 
</beans>
로그인 후 복사

위의 두 Bean에 대해 하나의lazy-init 속성은 true이고 다른 하나는 false입니다. 차이점은 무엇입니까?

IoC 컨테이너가 시작되면 service2가 인스턴스화되지만 service1은 인스턴스화되지 않습니다. 그러나 컨테이너가 service2를 인스턴스화하면 service1도 인스턴스화됩니다. 이유는 service2가 필요하기 때문입니다. 즉,lazy-init="true" 빈의 경우 IoC 컨테이너가 시작될 때 빈이 인스턴스화되지 않습니다. 컨테이너가 이를 사용해야 할 때만 인스턴스화됩니다. Lazy-init은 컨테이너 효율성에 도움이 되며, 불필요한 Bean을 무시할 수 있습니다.


동시에 특정 모듈에 대해 해당 Bean에서lazy-init 속성을 사용할 수 있습니다. .

Spring 주석은 @Lazy(false) 주석 태그를 사용하여 클래스 이름에 주석을 달 수 있습니다. 이는 Bean


에서lazy-init 속성을 구성하는 것과 동일합니다. 2. abstract

<bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> 
</bean>
로그인 후 복사
bean abstract="true"이면 bean이 인스턴스화되지 않습니다

이는 개발 프로세스 중 시작 시간을 절약하기 위해서만 수행됩니다. 실제 환경에 배포되면 default-lazy-init를 true로 설정할 필요가 없습니다. 결국 실제 환경에 배포하는 것은 흔한 일이 아니므로 1분씩 매번 시작하는 것은 큰 문제가 아니며 서버 효율성을 향상시킬 수 있습니다.

물론 모든 Bean이 default-lazy-init를 true로 설정할 수 있는 것은 아닙니다. Lazy-init는 스케줄러 Bean에 사용할 수 없습니다

[관련 권장 사항]

1

Java 무료 동영상 튜토리얼

2. Geek Academy Java 동영상 튜토리얼

JAVA 튜토리얼 매뉴얼

위 내용은 Java 구성의 default-lazy-init='true' 구성을 간략하게 설명하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿