Spring学习笔记1

今天内容:配置maven 搭建了springboot项目

约定大于配置(它默认的框架优先级比配置的要高,基本全都用它所默认的框架只有特殊需求的时候才会修改一小部分。)

IOC

Spring IOC

管理项目中java bean的生命周期

在项目运行阶段,程序中需要很多的对象来完成整体业务

springboot提供了很多注解标注类

@Controller @RestController (用于控制器,访问前台请求)

@Service (用于业务类)

@Repository (dao类 数据访问,访问数据库)

@Component (其他功能类) @Bean @Configuration

让spring管理这些类的生命周期

Spring提供了IOC的方式方便获取该对象

IOC==控制反转

容器和代码之间的控制权反转,代码中不需要明文调用

方法来获得对象,只需要声明该类需要什么类型的对象即可

DI

依赖注入DI 通过识别依赖关系注入对应的对象

Spring Bean的作用域

Spring Bean的作用域

singleton 单例模式 一个对象 默认

prototype 原型模式 每次需要都来一个新的对象

request web项目中请求作用域 每次请求都会创建一个新的对象

session 会话就是一个沟通的过程或访问整体的过程 每次会话都会创建一个新的对象。

GlobalSession 全局的 在搭建分布式或者集群时使用

springbean的生命周期

1.根据配置情况调用Bean构造方法或工厂方法实例化Bean

2.利用依赖注入完成Bean中所有属性值的配置注入

3.如果Bean实现了BeanNameAware接口,则Spring调用的Bean的SetBeanName()方法传入当前Bean的id值

4.如果Bean实现了BeanFactoryAware接口,则Spring调用setBeanFactory()方法传入当前工厂实例的引用

5.当一个Bean实现了ApplicationContextAware接口并在Spring容器中被实例化时,Spring容器会自动调用该Bean的setApplicationContext方法,并将应用程序上下文ApplicationContext作为参数传递进来

6.BeanPostProcessor 是 Spring 框架中的一个重要接口,它允许开发者在 Spring 容器创建和初始化 bean 的过程中,对 bean 进行自定义处理。这包括在 bean 实例化之后、属性设置之前(postProcessBeforeInitialization 方法),以及在 bean 初始化之后(postProcessAfterInitialization 方法)执行自定义逻辑

Spring 容器在创建和初始化每一个 bean 时,都会调用 CustomBeanPostProcessor 中的这两个方法,允许你进行自定义处理

7.InitializingBean 是 Spring 框架中的一个接口,它定义了一个 afterPropertiesSet 方法。当 Spring 容器创建 bean 的所有属性都被设置完成后,会调用这个方法。

8.如果在配置文件中通过 init-method 属性指定了初始化方法,则调用该初始化方法。

9.如果 BeanPostProcessor 和 Bean 关联,则 Spring 将调用该接口的初始化方法 postProcessAfterInitialization()。此时,Bean 已经可以被应用系统使用了。

10.如果在 <bean> 中指定了该 Bean 的作用范围为 scope="singleton",则将该 Bean 放入 Spring IoC 的缓存池中,将触发 Spring 对该 Bean 的生命周期管理;如果在 <bean> 中指定了该 Bean 的作用范围为 scope="prototype",则将该 Bean 交给调用者,调用者管理该 Bean 的生命周期,Spring 不再管理该 Bean。

11.如果 Bean 实现了 DisposableBean 接口,则 Spring 会调用 destory() 方法将 Spring 中的 Bean 销毁;如果在配置文件中通过 destory-method 属性指定了 Bean 的销毁方法,则 Spring 将调用该方法对 Bean 进行销毁。

相关推荐
通信小呆呆14 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
码云数智-园园14 小时前
C++20 Modules 模块详解
java·开发语言·spring
H__Rick14 小时前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee14 小时前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
咖啡八杯15 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
Flittly15 小时前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring
Alsn8615 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
李少兄15 小时前
从原理到实战:Spring IoC/DI 核心知识体系与高频面试题全解
java·后端·spring
YM52e15 小时前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨16 小时前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙