spring
स्प्रिंग आलसी इनिशियलाइज़ेशन
खोज…
कॉन्फ़िगरेशन क्लास में आलसी आरंभीकरण
@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
हमें बीन के आरंभ में देरी के लिए आईओसी कंटेनर को निर्देश देने की अनुमति देते हैं। डिफ़ॉल्ट रूप से, सेम आईओसी कंटेनर @Lazy
, @Lazy
हमें इस तात्कालिक प्रक्रिया को बदलने की अनुमति देते हैं।
स्प्रिंग में आलसी-इनिट बीन टैग की विशेषता है। आलसी-init के मूल्य सच्चे और झूठे हैं। यदि आलसी-init सही है, तो बीन के लिए अनुरोध करने पर उस बीन को इनिशियलाइज़ किया जाएगा। स्प्रिंग बीन को इनिशियलाइज़ करने पर यह बीन इनिशियलाइज़ नहीं होगा। यदि आलसी-init गलत है, तो बीन को वसंत कंटेनर के आरंभीकरण के साथ आरंभीकृत किया जाएगा और यह डिफ़ॉल्ट व्यवहार है।
एप्लिकेशन-conf.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
<bean id="testA" class="com.concretepage.A"/>
<bean id="testB" class="com.concretepage.B" lazy-init="true"/>
A.java
package com.concretepage;
public class A {
public A(){
System.out.println("Bean A is initialized");
}
}
B.java
package com.concretepage;
public class B {
public B(){
System.out.println("Bean B is initialized");
}
}
SpringTest.java
package com.concretepage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("app-conf.xml");
System.out.println("Feth bean B.");
context.getBean("testB");
}
}
उत्पादन
Bean A is initialized
Feth bean B.
Bean B is initialized
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow