背景

我们已经学会了javaee web搭建一个项目,可以实现操作数据库。javaee web搭建项目的流程是

目前我们实现一个功能的基本流程如下:
①创建一个web项目
②创建数据库
③使用jsp技术完成页面的创建
④使用Servlet+MVC+Mybatis完成功能开发。

javaee web搭建项目遇到的问题

分为10个步骤,发现其中有7个步骤是重复的。比如:数据库操作
使用原生的jdbc来操作数据,查询所有的学生信息和查询所有的班级信息
这两个代码除了Sql语句以及结果遍历不同外,其他的全部相同。也就说
不同功能的代码中出现了相同的代码部分。这样造成,重复的代码需要我们
在不同的功能中,重复编写,极大的影响了开发的效率,怎么办?

解决

不同的功能重复的代码不再重复声明,只声明功能相关的代码即可
也就说重复的代码我们虽然不写了,但是JDK在执行的时候这部分
重复的代码仍然是存在的,执行的是重复的+自己的。

实现方案

①不同的方法中出现了重复代码–>将重复代码封装为工具方法,然后
在自己的方法中调用工具方法,同时声明自己的代码。

②不同的类中出现了重复的代码—>封装工具类

③不同的项目出现了重复代码—>封装jar包

总结

代码冗余,一个项目里面重复的代码太多了;

jar包介绍

jar包的本质:

其实就是代码的class文件的压缩包,jdk可以直接调用无需解压。

jar包的使用:

将jar包资源放入到项目中后,需要add as library.

jar包的特点:

在项目中引入其他已经完成的代码的同时,保证项目原有代码的结构层次。

框架的概念和使用

1.框架的概念:

不同的项目会使用相同的代码进行开发。而这部分代码如果要进行封装
不是一个类或者一个方法就能搞定的,需要封装出来很多的类文件,于是
为了方便其他人使用,我们再次将这些代码封装为jar包,所以,

框架其实
就是不同的项目都会使用的代码的封装,软件的半成品。

2.框架的本质:

就是别人封装好的功能代码。

3.框架的具体表现形式:

一堆jar包:封装好了都要使用的代码。

4.框架的使用:

①将jar包导入到自己的项目中
②查阅API文档,调用jar包中的资源完成功能开发
③配置框架的配置文件(框架代码运行需要的常量数据)
数据和代码的解耦,使用者可以通过配置文件来自定义数据。

5.框架的学习:

就是使用别人的代码完成自己的功能开发。其实就是学习
如何使用别人的代码。想当于javaSE阶段学习常用类。

Spring框架的介绍

概念:

Spring是一个控制反转(IOC)和面向切面的(AOP)的轻量级框架.
使用范围:任何java程序.

Spring框架作用:

①简化企业项目的开发的流程.提升开发效率
②便于代码的后期维护升级.
③将代码之间的耦合性降低.

内容:

SpringIOC的使用
SpringAOP的使用
SpringTX的使用
注意:
Spring是一个框架集,内部集成了很多的功能,可以根据需求 选择对应的子框架使用.

SpringIOC的介绍和学习

由问题引入SpringIOC

问题:

在使用MVC的结构体系来完成后台功能代码的声明时,在一定程度上降低了代码的冗余,但是层与层之间的耦合性过高,造成代码升级维护特别麻烦,

比如,某天业务层某个类文件需要替换为新的类文件,那么**,控制层所有调用该业务类的代码需要全部修改为调用新的业务类.**

在项目里面使用spring框架里面的这个jar包。
使用springIOC实现了层与层之间对象的逻辑性的解耦.

那么什么时候要实现解耦?

一般情况下,在MVC代码结构中,会将Servlet和Service之间解耦,Service和mapper之间解耦.

最主要的作用就是实现对象之间的解耦

在之前的时候,我们的servlet里面要调用业务层service里面的代码,如果业务层已经改变,我们还需要在servlet里面进行修改代码,这个就非常的不方便,我们需要的是不改变servlet里面的代码,就可以实现业务的转换。那么这个时候就需要springIOC了。

解决:

将层与层对象之间的关系进行解耦,由直接变为间接.

实现:

SpringIOC.

作用:

实现了层与层之间对象的逻辑性的解耦.

SpringIOC的原理

总结:就是用spring框架创建一个容器,里面放对象,以后在任何的地方需要这个对象,都可以从这个spring容器里面拿就可以了。把那些耦合性比较高的对象都放到这个容器里面。