衡阳网站排名优化,wordpress+主题+恢复,网站建设 后期维护,wordpress数据盘目录 1.Bean的作用域
2.Bean的作用域的分类
3.设置作用域
4.Spring的执行流程#xff08;生命周期#xff09;
5.Bean的生命周期 1.Bean的作用域 lombok #xff08;dependency依赖#xff09; 是为了解决代码的冗余#xff08;比如说get和set方法#xff09;那些构造…目录 1.Bean的作用域
2.Bean的作用域的分类
3.设置作用域
4.Spring的执行流程生命周期
5.Bean的生命周期 1.Bean的作用域 lombok dependency依赖 是为了解决代码的冗余比如说get和set方法那些构造类所必要的方法 是为了更简单的替代java中必要代码的工具 2022以后的IDEA不需要添加lombok插件 Date是个复合注解 就是Setter和Getter和toString等等 Bean的作用域bean在整个Spring当中是单例模式 2.Bean的作用域的分类 官话 bean的作用域默认是 1.Singleton单例模式单例模式又分为饿汉和懒汉因为单例模式性能最优所以Spring默认选择它 2.prototype 原型模式(多例模式) 每次取的都是类的原生的模式类似于深克隆 3.request 请求作用域类似与pototype的每次请求都会根据原型深拷贝一个实例区别是它部分共享一个Bean在一个Http请求和响应中共享一个bean 限定SpringMVC中使用 4.session 作用域 一次会话中共享一个bean对象。 同样只适用于SpringMVC application 应用在SpringMVC里面 singsleton应用在Spring core里面二者都是单例模式 application 归属于 ApplicationContext singsleton 归属于IOC容器 3.设置作用域 用Scopeprototype 在Bean上面设置在注入Bean的时候设置 加了之后的影响是每次去拿存入Spring中的对象的时候不管中途有没有被修改它拿到的是原来的那份。实际上就算是修改也是修改的原来的拷贝也就是变成了多例模式 4.Spring的执行流程生命周期 1.启动容器加载xml配置 2.加载bean对象Bean对象的初始化 加载bean标签/base-package加载扫描路径 3.根据注解Controller等注册Bean到Spring容器中 4.装配Bean的属性从Spring中取出Bean 放入属性 private Stu stu 5.Bean的生命周期 1.实例化Bean这时候只是分配了内存得到了毛坯房 2.属性赋值: 属性注入setter注入 构造方法注入 ex买了装修的材料引用外部资源 3.Bean初始化 ex装修 a)实现了各种Aware通知的方法 ex各种通知通知师傅 b) 执行 BeanPostProcessor 初始化前置方法 ex 师傅们到场勘察环境指定方案 c1)执行 PostConstruct初始化方法 c2)执行 xml里面的init-method方法 ex 正式装修先让使用科技的自动化注解师傅装修再让传统的进行装修 d)执行 BeanPostProcessor 初始化后置方法 ex 打扫垃圾木屑 油漆等等 4.使用Bean ex住房子 5.销毁Bean ex 卖房子 属性注入是在初始化前面的这个题目中A依赖于BB依赖于C。如果从Spring中想要获取到A的对象那么先执行A的属性注入从代码中可以看到A需要B的属性注入,B又需要C的属性注入C没有属性注入然后执行C的初始化打印了 此时C对象已经生成 然后执行 此时B对象已经生成 然后回到第一个完成A的初始化。 也就是如果一直依赖下去的话都会执行一半的属性注入然后下潜知道最后一个依赖对象构造完毕然后再一级一级返回。类似于递归