Spring Boot 小白级-最初级入门项目工程之三(分析为什么使用spring框架管理bean,它赋予了bean什么特性?)
这一篇 ,我们来研究一下Spring来管理Bean对象的原因
1.spring框架会降低对象与对象之间的直接耦合(松耦即减少依赖),从而提高程序的可维护性和拓展性
2.spring框架来管理对象会为对象赋予什么样的特性?
a.第一个特性 :延迟加载特性(按需加载或是懒加载):暂缓对象的创建 优点:优化资源使用,(充分利用内存空间) 缺点:用的时候再创建对象会影响程序的响应速度 场景:大对象(耗内存)并且不常用的时候, 实现:在要延迟加载的类上使用@Lazy注解进行描述
b.第二个特性: 作用域 优点:让对象在有效的作用域之中使用,尽量控制对象的初始化与销毁,从而实现对象的高效低耗的运行 缺点:底层框架编写难度加大,可能在不熟练的情况下可能会出现域冲突的问题 实现:在需要设置作用域的类上加入,@Scope注解进行描述,该注解再用的有四种域,常用于Springboot中的有两种
b1).@Scope("singleton ") :单例作用域,从始至终只有一个对象,可以配合懒加载(@Lazy)使用。同时对象的创建与销毁都归Spring管理.。适用:程序中使用频度高的对象,可以描述为单例对象,默认就是单例作用域,通过池技术(亨元技术)实现对象的共享重复调用。
b2).@Scope("prototype ") : 多例作用域,每调用一次就是一个新的对象,需要时(调用)加载(不依赖与懒加载特性),对象的销毁不归spring框架管理。 最终的销毁由程序员(JVM虚拟机中的GC机制回收)
c.第三个特性 :生命周期方法 (最常用的就是初始化方法与销毁方法) 我们先来聊一聊什么是生命周期方法:每一个对象都会有生命周期(从创建到销毁),但是并不是没一个对象都会有生命周期方法。(生命周期方法:在对象的生命周期阶段,不同阶段 该对象会执行不同的方法-----例如:人在不同的年龄段会经历不同的事情,而不是一层不变,无波无澜)
c1).@PostConstruct注解,用来描述生命周期初始化方法,在构造方法执行之后执行,用于实现对象的初始化
c2). @PreDestroy 注解,用来描述生命周期销毁方法,在对象销毁之前执行。(注:因为多例作用域对象的销毁不归Spring框架管理,所以该注解对多例作用域对象没有效果)
[code]@Component public class yrfSpringBoot{ //生命周期初始化方法 @PostConstruct public void A(){ Sysotem.out.println("=============") } //生命周期销毁方法 @PreDestroy public void B(){ Sysotem.out.println("*************") } }
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)
- [置顶] 使用IDEA搭建Spring Boot入门项目
- springboot项目中使用mybatis逆向工程生成代码实例
- SpringBoot项目使用多线程处理定时任务时无法通过@Autowired注入bean
- QiYuAdmin-改造Quartz的Bean由SpringIOC容器管理(SpringBoot项目实战)
- JavaWeb企业实训 简易股市自选查询分析系统(六)使用Shiro控制登录等权限管理与Spring项目整合
- SpringBoot 简介 快速入门初识SpringBoot 使用IDEA构建SpringBoot项目
- [项目管理]_[初级]_[TortoiseSVN的使用入门]
- 【项目搭建】使用spring-boot进行REST风格的微服务开发入门
- spring-boot项目在线生成工程使用(start.spring.io)
- 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
- 记:IEDA中使用maven创建springboot项目(入门...)
- 项目(一)springboot多模块工程(3)集成mybatis-plus实现基本crud、集成swagger2接口管理
- spring心得2--bean的生命周期@Spring监听器的作用@Spring初始化容器案例分析@web项目使用
- Spring入门(四):使用Maven管理Spring项目
- 使用Gradle构建SpringBoot工程系列:第四篇:项目初始化(编辑build.gradle文件,引入项目基本配置及依赖)
- 使用Gradle构建SpringBoot工程系列:第三篇 创建Spring Boot项目
- Spring MVC 教程,快速入门,深入分析――如何取得Spring管理的bean
- 使用Swagger在SpringBoot项目中管理API文档(使用Oauth2)
- Spring框架使用properties配置数据源Bean【Spring入门】