Spring

Spring,第1张

Spring day01 @PostConstruct 注解

会在启动时,所有依赖都已经注入之后,会调用这个方法 (一般用于在你的业务逻辑执行前,Spring的依赖注入执行后,添加一段业务逻辑)

比如:你想在依赖注入后,你执行一个业务之前,还想调用某个方法或者进行某种运算以便你的业务使用,就可以使用这个注解

@PostConstruct
void xxxx(){}
@PreDestroy注解

在关闭时,在销毁Bean实例之前,会调用这个方法,例如关流或者在销毁前要关闭某些东西,在这里处理会比较方便(有助于释放资源和清理)

@PreDestroy
void xxxx(){}

@Stereotype注解

说明:

是 Spring框架的注解

@Service业务类

@Repository数据访问类

@Controller 和 @RestController 是 web类 (SpringMVC)

@Configuration java配置

而以上这5种注解,其实底层都是@Component注解 之所以一样的功能要叫不同的名字,就是为了方便分层

而这些注解,统称为 @Stereotype注解

@meta(自定义注解)
使用@Target描述注解存在的位置
ElementType.TYPE 应用于类的元素
ElementType.METHOD 应用于方法级
ElementType.FIELD 应用于字段或属性(成员变量)
ElementType.ANNOTATION_TYPE 应用于注解类型
ElementType.ConSTRUCTOR 应用于构造函数
ElementType.LOCAL_VARIABLE 应用于局部变量
ElementType.PACKAGE 应用于包声明
ElementType.PARAMETER 应用于方法的参数
使用@Retention注解描述这个自定义注解的生命周期(被保留的时间的长短)
SOURCE 在源文件中有效(即源文件保留)
CLASS 在class文件中有效(即class保留)
RUNTIME 在运行时有效(即运行时保留)

注解补充

之所以有的注解,例如@Override重写注解,可以写可以不写,效果一样,但是有的注解必须写, 就因为这个meta

总结:

定义Spring Bean的方式:

显示的:使用@Bean方法

隐式的:使用@Component 和组件扫描 ( @componentScan("") )

大部分应用程序中使用 自己的写的类使用隐式的 其他的类使用显式的

进行初始化和清理

使用:@PostConstruct 和 @PreDestroy

@Autowired

说明:

将使用IOC保存在容器中的Bean对象注入某个属性或者字段中

用法:

可以使用在构造方法上,并且有几个参数就可以注入几个参数,可以注入多个参数(推荐使用在构造方法上) 必须存在唯一的匹配类型的依赖

可以使用在方法上,

可以使用在字段上

注意:不能使用在类上!

自动装配/自动布线 也叫依赖注入 相当于别名

规则:

查找与所需类型匹配的唯一Bean

如果提供了@Qulifer则尝试根据名称查找匹配的Bean

关于@Resource注解和@Autowlierd是一样的

@Autowlierd注解 是根据类型获取,再通过名称获取

@Resurce注解: 是根据名称获取,再通过类型获取

这俩没什么区别 非要有区别的话就是顺序不一样

关于FactoryBean(工厂模式)

重要了解FactoryBean里的实现类getobject()理解get()方法如何工作

深入理解SpringBean生命周期

1.初始化阶段:

        当上下文被创建时,被初始化阶段就已经完成了

2.后处理Bean的定义"

        1.BeanFactoryPostProcessor简称BFPP

        2.看看有那些Bean可以加载 这个过程就叫 Bean的定义

        3.加载多个Bean,跟定有先后顺序的 这个顺序就是由后处理来定义,也可以自定义但是要设置编码.比如Bean1,Bean2

实例化是构造注入 执行Setter是方法注入 Bean创建事件

1.初始化器分为后初始化有分前初始化

例  前初始化<-------初始化------->后初始化

全称:BeanPostProcessor:简称BPP

以上就是SpringBean的生命周期初始化阶段 使用阶段

代理:分两种 

1.JDK代理 :是基于接口的 实现一个类

2.CGLib代理:是基于类 继承一个类

以上就是使用阶段

销毁阶段

所有Bean被清理.

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5611918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存