spring 的懒加载使用
时间: 2023-08-31 16:08:33 浏览: 80
在Spring中,可以通过在bean配置中设置`lazy-init="true"`来实现懒加载。例如,可以将要交给Spring管理的类设置为懒加载,***1. 服务器启动时,如果加载太多的资源,会导致服务器启动慢,可以将不重要的资源设置为懒加载,减少服务器启动时间。
2. 当用户需要特定的链接时,而创建这些链接需要很长的时间,可以使用懒加载延迟创建这些链接。
3. 懒加载的使用可以通过在配置类中使用`@Lazy`注解,结合`@Scope`注解来标注单例模式还是多例模式。
下面是一个使用懒加载的Spring示例代码:
```java
package com.jt.config;
import com.jt.demo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
@Configuration
@ComponentScan("com.jt")
public class SpringConfig {
@Bean
@Scope("singleton")
@Lazy
public User user(){
return new User();
}
}
```
```java
package com.jt;
import com.jt.config.SpringConfig;
import com.jt.demo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestSpring {
public void testDemo(){
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
User user = context.getBean(User.class);
User user1 = context.getBean(User.class);
user.say();
System.out.println(user==user1);
}
}
```
通过在测试类中使用`@Lazy`注解,我们可以观察到在调用`getBean()`方法时才会创建`User`对象,实现了懒加载的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [08-Spring懒加载是什么?怎么用?](https://blog.csdn.net/qq_52545155/article/details/127734981)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Spring懒加载机制](https://blog.csdn.net/weixin_62460384/article/details/121718793)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文