-
Spring概述
-
spring是一个轻量级的开源框架
-
eg:如果单纯的servlet实现文件上传,使用fileupload实现,导入两个包,fileupload的jar包和 io的jar包。而使用spring只需要导入spring的jar包,spring的核心jar包只有2M作用。
-
-
spring解决耦合问题(IOC)使用户只关注逻辑问题,不要考虑对象与对象直接的依赖问题。
-
spring是一站式的框架
-
表现层(web) ,业务逻辑层(service), 数据访问层(dao)
-
spring针对三层结构,在每一层都提供技术解决
-
spring :业务逻辑层
-
springmvc : 表现层
-
jdbctemplate : 数据访问层
-
-
-
spring的体系结构
-
-
Spring的IOC
-
什么是IOC:
-
控制反转,比如现在有一个类,创建这个类对象,使用普通方式new对象,使用ioc时候,不需要new对象,把对象的创建交给spring完成。
-
spring把对象创建出来,我们直接用就行了
-
-
-
ioc的底层原理
-
xml(解析 ),工厂模式, 反射(反射:通过获取字节码文件,操作类中所有的内容)
-
画图说明:
-
-
-
BeanFactory bean工厂
-
BeanFactory:ioc容器的基本实现,是spring内部的基础设施,是面向spring本身的,不是提供给开发人员使用的。
-
ApplicationContext:beanFactory的子接口,提供了更多高级特性,面向spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactory。
-
-
Bean管理(将bean对象注入到ioc容器中)
-
Bean管理
-
实现方法
-
xml配置文件方式实现
-
基于注解实现(重要)
-
-
使用步骤
-
spring创建对象
-
spirng注入对象
-
-
-
xml配置文件创建对象
-
使用bean标签配置,在bean标签里面使用属性。
-
id属性:唯一标识
-
class属性:类的全路径名
-
(在bean标签里面还有一个属性name属性,name属性和id属性是相同的,name属性类似于java里面的过时方法,针对于之前的struts1框架提供的,在id属性里面不能有特殊符号,在name属性里面可以有/)
-
-
创建对象时候,默认也是会执行无参构造器
-
类的属性初始化
<!-- 使用set方法注入属性 -->
<bean id="book" class="com.atguigu.di.Book">
<!-- 注入属性,使用set方法注入
name:注入类属性名称
value:注入属性值
-->
<property name="bname" value="易筋经"></property>
<property name="bauthor" value="达摩"></property>
</bean>
-
第一种方式:使用set方法注入
-
在定义的class里面定义属性,生产set方法
-
在配置文件中进行配置
-
-
第二种方式:使用有参构造器注入
-
创建属性,生产有参构造器
-
在配置文件中进行配置
-
-
-
-
Bean的作用域
-
在bean标签里面使用scope属性设置创建对象是单例还是多例
-
在默认情况下,是单例,singleton
-
可以配置为多实例,在scope属性里面使用值prototype
-
-
-
Bean的生命周期
<bean id="product" class="com.atguigu.bean.Product" init-method="initMethod" destroy-method="destroyMethod">
<property name="pname" value="红牛"></property>
</bean>
-
从对象创建到对象销毁的过程,成为生命周期
-
扩展:
-
servlet生命周期 :
-
创建:init( ),servlet在默认情况下是第一次访问时候创建,但是可以配置让在服务器启动时候创建。
-
服务:service(),每次访问servlet调用service方法,如果get请求调用doGet方法,如果post请求,调用doPost方法。
-
销毁:destory(),servlet销毁时候调用destory方法。
-
-
-
bean的生命周期:(5步)
-
通过无参构造器创建bean实例。
-
为bean的属性设置值和对其他bean的引用,(set方法注入属性,调用set方法)。
-
调用bean的初始化方法(需要进行配置)
-
bean可以使用了(获取到bean对象)
-
当容器关闭时,调用bean的销毁方法(执行销毁方法,自己设置)
-
eg:
-
-
-
Bean的后置处理器
-
添加后置处理器之后,bean的生命周期为七步
-
①通过构造器或工厂方法创建bean实例
-
②为bean的属性设置值和对其他bean的引用
-
③将bean实例传递给bean后置处理器的postProcessBeforeInitialization()方法
-
④调用bean的初始化方法
-
⑤将bean实例传递给bean后置处理器的postProcessAfterInitialization()方法
-
⑥bean可以使用了
-
⑦当容器关闭时调用bean的销毁方法
-
-
后置处理器需要自己写实现方法
-
postProcessor 里面有两个方法在初始化前和初始化后做一些更加精细化的操作。使用时实现beanPostProcesser接口。对ioc容器中所有的bean都起作用 。
-
-
Spring框架学习 一
最新推荐文章于 2024-02-06 21:15:15 发布