Spring5框架
Spring5框架概述
一、课程内容介绍
- Spring概念
- IOC容器
- Aop
- JdbcTemplate
- 事务管理
二、Spring框架概述
- Spring是轻量级的开源的JavaEE框架
- 轻量级:
- 开源:
- 框架:
- Spring可以解决企业应用开发的复杂性
- Spring有两个核心部分:IOC和Aop
- IOC:控制反转,把创建对象过程交个Spring进行管理
- Aop:面向切面,不修改源代码进行功能增强
- Spring特点
- 方便解耦,简化开发
- Aop编程支持
- 方便程序测试
- 方便和其他框架进行整合
- 方便进行事务处理
- 降低API开发难度
三、Spring5入门案例
- 下载Spring5
- 打开idea工具,创建普通Java工程
- 导入Spring5相关jar包
- 创建普通类,在这个类创建普通方法
- 创建Spring配置文件,在配置文件配置创建对象
- 进行测试代码编写
IOC容器
一、底层原理
二、IOC接口(BeanFactory)
三、IOC操作Bean管理(基于xml)
四、IOC操作Bean管理(基于注解)
一、IOC(概念和原理)
- 什么是IOC
- 控制反转,把对象创建和对象之间的调用,交给Spring进行管理。
- 使用IOC目的:为了耦合度降低
- 做入门案例就是IOC实现
- IOC底层原理
- xml解析、工厂模式、反射
二、IOC(BeanFactory接口)
-
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
-
Spring提供IOC容器实现两种方式:(两个接口)
-
BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用
加载配置文件时候不会创建对象,在获取对象(使用)才会去创建对象
-
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
加载配置文件时候会把配置文件对象进行创建
-
ApplicationContext接口有实现类
-
四、IOC操作Bean管理(概念)
- 什么是Bean管理
- Bean管理指的是两个操作
- Spring创建对象
- Spring注入属性
- Bean管理操作有两种方式
- 基于xml配置文件方式实现
- 基于注解方式实现
- Bean管理指的是两个操作
1. IOC操作Bean管理(基于xml方式)
-
基于xml方式创建对象
<!--配置User对象创建--> <bean id="user" class="com.atguigu.spring.User"></bean>
-
在Spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
-
在bean标签有很多属性,介绍常用的属性
- id 属性:唯一属性
- class属性:类全路径(包类路径)
-
创建对象时候,默认也是执行无参数构造方法完成对象创建
-
-
基于xml方式注入属性
- DI:依赖注入,就是注入属性
-
第一种注入方式:使用set方法进行注入
-
创建类,定义属性和对应的set方法
package com.atguigu.spring; /** * @Author: dell * @DATE: 2022/8/29 15:18 * @Descrption: 演示使用set方法注入属性 * @Version */ public class Book { //创建属性 private String bname; private String bauthor; //创建属性对应的set方法注入 public void setBname(String bname) { this.bname = bname; } public void setBauthor(String bauthor) { this.bauthor = bauthor; } }
-
在spring配置文件配置对象创建,配置属性注入
<bean id="book" class="com.atguigu.spring.Book"> <!--使用property完成属性注入 name: 类里面属性名称 value: 向属性注入的值 --> <property name="bname" value="易筋经"></property> <property name="bauthor" value="达摩老祖"></property> </bean>
-
-
第二种注入方式:使用参数构造进行注入
-
创建类,定义属性,创建属性对应有参构造方法
package com.atguigu.spring; /** * @Author: dell * @DATE: 2022/8/29 16:25 * @Descrption: 使用有参数构造注入 */ public class Orders { //属性 private String oname; private String address; //有参构造 public Orders(String oname, String address) { this.oname = oname; this.address = address; } }
-
在spring配置文件中进行配置
<!--3 有参数构造注入属性--> <bean id="orders" class="com.atguigu.spring.Orders"> <constructor-arg name="oname" value="电脑"></constructor-arg> <constructor-arg name="address" value="China"></constructor-arg> </bean>
-
-
P名称空间注入(了解)
-
使用P名称空间注入,可以简化基于xml配置方式
第一步 添加p名称空间在配置文件中
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
第二步 进行属性注入,在bean标签里面进行操作
<!-- p名称空间方法注入属性--> <bean id="book" class="com.atguigu.spring.Book" p:bname="九阳神功" p:bauthor="无名氏"> </bean>
-
2. IOC操作Bean管理(xml注入其他类型属性)
-
字面量
-
null值
-
属性值包含特殊符号
-
-
注入属性-外部bean
-
创建两个类service类和dao类
-
在service调用dao里面的方法
-
在spring配置文件中进行配置
-
-
注入属性-内部bean
-
一对多关系:部门和员工
一个部门有多个员工,一个员工属于同一个部门
部门是一,员工是多
-
在实体类之间表示一对多关系,员工表示所属部门,使用对象类型属性进行表示
-
在spring配置文件中进行配置
-
-
注入属性-级联赋值
-
第一种写法
-
第二种写法
-