1、Spring基本概念
1、Spring是轻量级的开源的JavaEE框架
2、可以解决企业应用开发的复杂性
3、两个核心部分:IOC和AOP
- IOC:控制反转,把创建对象的过程交给Spring - AOP:面向切面,不修改源代码的情况下进行功能的添加/增强、
4、特点
-
方便解耦,简化开发
-
Aop编程的支持
-
方便程序的测试,对Junit4支持
-
方便整合各种框架
-
降低JavaEE API的使用难度
-
方便进行事务的操作
入门案例
1、下载
project->Spring Framework,点击learn
GA 稳定版
SNAPSHOT 快照版(不稳定)
打开GitHub,点击进入
进入后
复制那个地址后,粘贴到主页地址后面,直接进入下载页面
2、新建工程
3、导入Spring5相关jar包
只导入下面的Jar包即可
beans 基本
core 核心
context 上下文
expression 表达式
还有日志 commons-logging-1.1.1.jar
4、创建普通的类,在类中创建普通的方法
spring中创建对象的方法:
- 配置文件 - 注入
5、创建Spring配置文件(xml文件),配置需要创建的对象
6、进行测试代码编写
2、IOC容器
IOC(Inversion of control) 控制反转
把对象的创建和对象之间的调用过程,交给Spring进行管理
使用IOC的目的,为了耦合度降低
入门案例即为IOC实现
1、底层原理
-
xml解析、工厂模式、反射(得到.class文件)
原始方法:创建对象,调用其方法,但该方法耦 合度太高
工厂模式:建一个工厂类(降低代码的耦合度)
IOC过程
第一步 配置xml文件,配置创建的对象
<bean id="dao" class="com.atguigu.UserDao"></bean>
第二步 有service类和dao类,创建工厂类
class UserFactory{ public static UserDao getDao(){ String classValue=class属性值;//xml解析 Class clazz=Class.forName(classValue);//通过反射创建对象 return(UserDao)clazz.newInstance(); } }
2、IOC接口(BeanFactory)
IOC的思想基于IOC容器完成,IOC容器底层就是对象工厂
Spring提供IOC容器事项的两种方式(两个接口)
-
BeanFactory :IOC容器基本实现,spring内置接口,不提供给开发人员使用(*加载配置文件时不会创建对象,获取的时候才创建对象)
-
ApplicationContext:BeanFactory的子接口,提供更强大的功能(*加载配置文件的时候就会把配置文件的对象进行创建)
一般创建对象比较耗时耗资源,所以一般在最开始启动项目的时候就让它读取配置文件就创建对象,对后面更有利
ApplicationContext有两个实现类:
-
FileSystemXmlApplicationContext:绝对路径
-
ClassPathXmlApplicationContext:相对于src的路径
3、IOC操作(Bean管理)
1)什么是Bean管理
-
由Spring创建对象
-
Spring注入属性
2)Bean管理两种方式
-
基于xml方式
1、基于xml方式创建对象
<bean id="user" class="com.atguigu.spring.User">
在spring配置文件中,使用bean标签,标签里面添加对应的属性,就可以实现对象创建。
常用属性有
-
id属性:别名,标签名
-
class属性:所在类的全路径
创建对象默认执行无参数构造方法创建
2、基于xml方式注入属性
DI:依赖注入,就是注入属性(要先创建对象,再注入属性)
注入方式:
-
使用set方式注入
Book book=new Book(); book.setBname("abc");
1]-创建类,定义属性和set方法
2]-在spring配置文件中配置对象创建,配置属性注入
<bean id="book" class="com.atguigu.spring.Book"> <!-- 使用property完成属性注入, name:类里面的属性名称 value:向属性注入的值--> <property name="bname" value="书名"> </bean>
-
通过有参构造注入
Book book=new Book("abc")
-
-
基于注解方式
3、AOP
4、Jdbc Template
5、事务管理