Spring官网:spring.io
1.spring 2.SprinMVC 3.Maven高级 4.SpringBoot 5.MyBatisPlus
为什么要学Spring?
简化开发,降低企业级开发的复杂度
框架整合,高效整合其他技术,提高企业级应用开发与运行效率
Spring 系统架构
IOC(Inversion of Control)控制反转:对象的创建控制权由程序转移到外部
解决什么问题?--> 代码耦合度高
解决方案:使用对象时,在程序中不主动使用new产生对象,转换为由外部提供对象
目标:充分解耦
使用IoC容器管理Bean(IoC)
在IoC容器内将有依赖关系的bean进行关系绑定(DI)
最终效果:使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系
IoC案例思路分析
管理什么?(Service与Dao)
如何将被管理的对象告知IoC容器?(配置)
被管理的对象交给IoC容器,如何获取到IoC容器?(接口)
IoC容器得到后,如何从容器中获取bean?(接口方法)
使用Spring导入哪些坐标?(pom.xml)
Bean
bean基础配置:id,name别名,class类别,scope作用范围
bean实例化的4种方法:构造方法(常用),静态工厂,实例工厂与FactoryBean(实用)
bean生命周期:
生命周期控制:
(1)使用配置的方式:
init-method,destroy-method 容器关闭前触发bean的销毁
关闭容器:1,ctx.close();较为暴力 2,ctx.registerShutdownHook();关闭前的钩子
(2)使用接口的方式:
接口:InitializationBean,DisposableBean
方法:afterPropertiesSet(),destroy()
依赖注入(4)
setter注入:
引用数据类型:ref;
简单类型(基本数据类型和string):使用property标签value属性;
构造器注入:
引用类型:
<constructor-arg name="bookDao" ref="bookDao">
简单类型:
<constructor-arg name="databaseName" value="mysql">
依赖注入方式选择:
自动装配
集合注入
数组,List,Set,Map,Properties
通过Properties文件加载:
总结: