springIOC

spring必知必会 1.问题的讨论

在讲解spring框架之前,我们先引入一个思考,目前我们实现一个功能的基本流程如下:

① 创建一个web项目

② 创建数据库

③ 使用jsp技术完成页面的创建

④ 使用Servlet+MVC+Mybatis完成功能开发。

但是在目前的流程中,代码的执行流程如下:

springIOC


重复的代码需要我们在不同的功能中,重复编写,极大的影响了开发的效率,怎么办?

不同的功能重复的代码不再重复声明,只声明功能相关的代码即可。也就说重复的代码我们虽然不写了,但是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框架的结构:

springIOC


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.时机:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywsff.html