spring 框架 (spring5)
1. Spring 概念
1.1 轻量、开源
1.2 解决企业应用开发的复杂性
1.3 核心 IOC
和 AOP
IOC
: 控制反转,把创建对象过程交给Spring进行管理Aop
: 面向切面,不修改源代码进行功能增强
1.4 特点
- 方便解耦、简化开发
- Aop编程支持
- 方便程序测试
- 方便集成各种优秀框架
- 方便事物操作 …
1.5 入门案例
- 下载 spring5 的jar包
- idea 新建java普通项目并导入相关包(基础)
- 创建一个普通类
User
1 | package top.ghovos.spring5; |
- 创建配置文件
bean1.xml
1 |
|
- 创建测试类
TestSpring5
1 | package top.ghovos.spring5.testdemo; |
- 各个文件的关系
2. IOC 容器
2.1 IOC 底层原理
xml解析、工厂模式、反射
- 配置xml文件
1
<bean id="dao" class="top.ghovos.spring5.User"></bean>
- 有seriece类和dao类,创建
工厂类
1
2
3
4
5
6
7
8//创建工厂类
class UserFactory{
public static UserDao getDao(){
String classValue = class属性值; //1. 通过xml解析
Class clazz = Class.forName(classValue); //2. 通过反射创建对象
return (UserDao)clazz.newInstance(); //初始化对象并返回
}
}
2.2 IOC 接口(BeanFactory)
1. IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2. Spring 提供IOC容器实现的两种方式
BeanFactory
: IOC容器的基本实现,是Spring内部的使用接口,不提供开发人员使用- 加载配置文件的时候不会创建对象,对象使用才会创建对象
ApplicationContext
BeanFactory 的子接口,提供更多强大的功能,一般由开发人员使用- 加载配置文件时就会创建对象
- ApplicationContext 接口有实现类
2.3 IOC 操作Bean管理(基于xml)
1. 什么是Bean管理
- Bean 管理只两个操作
- sping 创建对象
- spirng 注入属性 (如: getter 或 setter)
2. Bean 管理的操作两种方式
基于xml配置文件方式
- DI: 依赖注入, 就是注入属性
- 创建对象
1
2
3
4<bean id = "user" class = "top.ghovos.spring5.Book" name=""><bean>
<!--id: 唯一标识-->
<!--class: 类全路径(包类路径)-->
<!-- 创建对象时候,默认也是**无参数构造**方法完成对象创建-->- 用set方式主语注入属性
1
2
3
4
5
6
7
8// 1. 使用set方式注入
public void setBook(String bName){
this.bName=bName;
}
public void setBookAuthor(String bAuthor){
this.bAuthor=bAuthor;
}1
2
3
4
5
6
7
8
9
10
11<!--配置User对象-->
<bean id="book" class="top.ghovos.spring5.Book">
<!--使用property完成属性注入-->
<!--注意 用property 要完成**上面** set方法(只能是set方法) 后配置-->
<property name="bName" value="someBook"></property>
<property name="bAuthor" value="someOne"></property>
<!--
name: 属性名称
value:属性值
-->
</bean>- 使用有参构造方式注入
基于注解方式方式
2.4 IOC 操作Bean管理(基于注解)
3. Aop
4. JdbcTemplate
5. 事务管理
6. Spring 5 新特性
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.