Spring
Spring 入门教程
1、参考资料
尚硅谷-Spring5框架最新版教程(idea版)https://www.bilibili.com/video/BV1Vf4y127N5?p=3&spm_id_from=pageDriver
雷丰阳spring、springmvc、mybatis、spring一站式学习
spring : https://blog.youkuaiyun.com/oneby1314/article/details/114259893
https://blog.youkuaiyun.com/weixin_45496190/article/details/107059038
JAVAEE: https://blog.youkuaiyun.com/PorkBird/article/details/113666542
2. Spring 框架概述
- Spring 是轻量级的开源的 JavaEE 框架
- Spring 可以解决企业开发应用的复杂性
- Spring 为简化企业级开发而生,使用Spring,Javabean就可以实现很多以前要靠EJB才能实现的功能
- Spring有两个核心部分:IOC和AOP
(1) IOC : 控制反转,把对象过程交给Spring进行管理(2)AOP:面向切面,不修改源代码进行功能增强。 - Spring的特点
方便解耦,简化开发
AOP编程支持
方便程序测试
方便和其他框架进行整合
方便进行事务操作
降低API开发难度
3. 开发
1、IOC操作Bean管理
a)Bean管理就是两个操作:(1)Spring创建对象;(2)Spring注入属性
2、基于XML配置文件创建对象
<!--1 配置User对象创建-->
<bean id="user" class="com.atguigu.spring5.User"></bean>
id:表示唯一标识
class:b表示类全路径(包类路径)
name:中可以用特殊符号,但现在不怎么用name属性了
创建对象时,默认也是执行无参数构造方法完成对象创建
3、基于XML方式注入属性(DI:依赖注入(注入属性))
有参构造constructor-arg中也可以有index 和value
4. IOC控制反转
1. 什么是IOC
控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
使用IOC的目的:是为降低耦合度
做入门案例就是IOC实现
2. IOC底层原理
xml解析、工厂模式、反射
原始方式创建对象,调方法,缺点:耦合度太高了
工厂模式
对象和对象之间不可能完全没有耦合,UserService和UserDao解耦
IOC原理进一步降低耦合度
反射的目的是通过得到.class文件,从而得到类中内容
1.得到包类路径,2.通过反射得到它的反射对象
newInstance()可以直接将它的方法创建
newInstance可以创建对象
3. 反射机制
- 反射机制的作用
通过java语言中的反射机制可以操作字节码文件,有点类似于黑客
通过反色和机制可以操作代码片段(class文件) - 反射机制相关的类在java.lang.reflect包下
java.lang.class 代表字节码文件,代表一个类型
java.lang.reflect.Method 代表字节码中的方法字节码,代表类中的方法
java.lang.reflect.Constructor 代表字节码中的构造方法字节码,代表类中的构造方法
java.lang.reflect.Filed 代表字节码中的属性字节码,代表成员变量(静态变量)
- Class.forName():
静态方法
方法的参数是一个字符串
字符串需要的是一个完整类名
完整类名必须带有包名,java.lang包不能省略
IOC(BeanFactory接口)
1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、Spring提供IOC容器实现两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用,什么时候使用才会创建对象
加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
加载配置文件时候就会把在配置文件对象进行创建
用在web中,因为用到了服务器,因此ApplicationContext会更好
ApplicationContext接口有实现类
FileSystemXMLApplicationContex接口要用绝对路径
ClassPathXMLApplicationContext接口要用相对路径
OC操作Bean管理
什么是Bean管理
(0)Bean管理指的是两个操作
(1)Spring创建对象
(2)Spirng注入属性
Bean管理操作有两种方式
(1)基于xml配置文件方式实现
(2)基于注解方式实现
下载各种jar包的地方
https://mvnrepository.com/