spring必知必会 1.问题的讨论
在讲解spring框架之前,我们先引入一个思考,目前我们实现一个功能的基本流程如下:
① 创建一个web项目
② 创建数据库
③ 使用jsp技术完成页面的创建
④ 使用Servlet+MVC+Mybatis完成功能开发。
但是在目前的流程中,代码的执行流程如下:
重复的代码需要我们在不同的功能中,重复编写,极大的影响了开发的效率,怎么办?
不同的功能重复的代码不再重复声明,只声明功能相关的代码即可。也就说重复的代码我们虽然不写了,但是JDK在执行的时候这部分重复的代码仍然是存在的,执行的是重复的+自己的。
① 不同的方法中出现了重复代码-->将重复代码封装为工具方法,然后在自己的方法中调用工具方法,同时声明自己的代码。
② 不同的类中出现了重复的代码--->封装工具类
③ 不同的项目出现了重复代码--->封装jar包
那么什么是jar包呢?
jar包的本质:其实就是代码的class文件的压缩包,jdk可以直接调用无需解压。
jar包的使用:将jar包资源放入到项目中后,需要add as library.
jar包的特点:在项目中引入其他已经完成的代码的同时,保证项目原有代码的结构层次。
2.框架的概念和使用1.框架的概念
不同的项目会使用相同的代码进行开发。而这部分代码如果要进行封装不是一个类或者一个方法就能搞定的,需要封装出来很多的类文件,于是为了方便其他人使用,我们再次将这些代码封装为jar包,所以,框架其实就是不用的项目都会使用的代码的封装,软件的半成品。
2.框架的本质:
就是别人封装好的功能代码。
3.框架的具体表现形式:
一堆jar包:封装好了都要使用的代码。
4.框架的使用:
① 将jar包导入到自己的项目中
② 查阅API文档,调用jar包中的资源完成功能开发
③ 配置框架的配置文件(框架代码运行需要的常量数据)
数据和代码的解耦,使用者可以通过配置问价来自定义数据。
5.框架的学习:
就是使用别人的代码完成自己的功能开发。其实就是学习如何使用别人的代码。想当于javaSE阶段学习常用类。
3.Spring框架的介绍概念:Spring是一个控制反转(IOC)和面向切面的(AOP)的轻量级框架.
使用范围:任何java程序.
作用:
①简化企业项目的开发的流程.提升开发效率
②便于代码的后期维护升级.
③将代码之间的耦合性降低.
内容:
SpringIOC的使用
SpringAOP的使用
SpringTX的使用
注意:
Spring是一个框架集,内部集成了很多的功能,可以根据需求 选择对应的子框架使用.
Spring框架的结构:
Test层:Spring提供测试功能.
Core Container层:Spring启动最基本条件。
Beans: Spring 负责创建类对象并管理对象。
core:核心类。
context:上下文参数,获取外部资源或管理注解。
SpEL:expression.jar(Expression Language)
注:spring启动需要的4个jar包。
Aop:实现aop功能需要依赖
Aspects:切面Aop依赖的包
Data Access/Integartion:Spring封装数据访问层相关内容
JDBC:Spring对JDBC封装后的代码
ORM:封装了持久层框架的代码,比如:Hibernate。
TranSactions:对应Spring-tx.jar声明事务时使用。
Web:需要Spring完成web相关功能时需要
比如:由tomcat加载Spring配置文件时需要由Spring-web包。tomcat是servlet容器。
Spring发明人:Rod Johnson
4.SpringIOC的介绍和学习中文名称:控制反转 英文名:Inversion of control
在使用MVC的结构体系来完成后台功能代码的声明时,在一定程度上降低了代码的冗余,但是层与层之间的耦合性过高,造成代码升级维护特别麻烦,比如,某天业务层某个类文件需要替换为新的类文件,那么,控制层所有调用该业务类的代码需要全部修改为调用新的业务类.
IOC是什么呢?
IOC完成的事情原先由程序员主动通过new实例化的对象的事情转交给Spring负责。
控制反转中控制指的是:控制类的对象
控制反转中反转指得是:转交给spring负责。
IOC最大的作用:解耦。程序员不需要管理对象,解除了对象管理和程序员的耦合。实现了层与层之间对象的逻辑性的解耦。
5.SpringIOC的基本使用1.作用:
IOC将耦合性非常高的对象进行解耦.
2.时机: