spring框架概述:为什么要用spring?OCP、DIP、IOC、DI的概念是什么?spring有哪些模块?spring的作用是什么?代码 + 笔记图

目录

1、不用spring框架代码样例

2、上述功能设计的缺陷是什么?怎么解决?

3、我们自己写的程序违背了OCP原则,又违背了DIP原则,怎么办呢?

4、spring的五大特点

5 、spring的八大模块

6、spring的jar包介绍图(重点)

7、总结


本文章主要介绍不使用spring框架时我们代码设计的缺陷,spring的特点和优势,OCP(开闭原则)、DIP(依赖倒置)、IOC(控制反转)、DI(依赖注入)的概念,spring的五大特点和八大模块介绍,以及spring常用的jar包介绍。有代码样例有笔记图。

1、不用spring框架代码样例

我们都知道spring框架非常热门,但是却不知道其热门的原因。

下面用几个点告诉大家spring强大之处。

以下先来举个不用spring框架的代码样例

main调用Service层,service层调用dao层

public interface UserDao {

    void delete();
}
public class UserDaoImpl implements UserDao {
    @Override
    public void delete() {
        System.out.println( "正在删除用户数据");
    }
}
public interface UserService {
    String deleteMan(String name);
}
public class UserServiceImpl implements UserService {
    @Override
    public String deleteMan(String name) {
        UserDao userDao = new UserDaoImpl();
        System.out.println("准备调用删除的dao层");
        userDao.delete();
        return name + "用户被删除了!";
    }
}
public class Main {
    public static void main(String[] args) {

        UserService userService = new UserServiceImpl();
        String string = userService.deleteMan("小林");
        System.out.println(string);
    }
}

运行结果:

可以看到我们不用spring框架也能自己写出代码,但是这样的设计是不好维护的,因为严重违背了OCP、DIP原则。下面的代码一改则上面的代码都需要做相应修改,面向的是具体的编程。

下面我们展开说说

2、上述功能设计的缺陷是什么?怎么解决?

我们都知道,设计功能要高内聚,低耦合。

所以我们会面向接口编程,层和层之间有接口,降低它们之间的耦合度。

但是我们实际开发中,接口是不能new的 ,只能把实现类给new出来。如下图

所以还是没有解耦

当我们有业务需要修改时,例如加了一个实现类来继承userService接口重写delete方法,那么我们就要修改原来的代码,得重新new一个实现类出来,这严重违背了OCP原则

OCP原则:对扩展开放、对修改关闭

不仅如此,这种写法还违背了依赖倒置原则

即下层的代码有改动,上层也需要跟着改动

依赖倒置原则的核心:面向接口编程、面向抽象编程、不要面向具体编程

修改为面向抽象编程的代码:(注意:目前我们这么做肯定是会报空指针异常的,因为没有依赖注入。)

3、我们自己写的程序违背了OCP原则,又违背了DIP原则,怎么办呢?

可以采用IOC(控制反转)的编程思想来解决这个问题

其中DI(依赖注入)就是IOC的实现方式

spring使用了IOC这个思想,就可以完美解决原始程序设计不符合OCP和DIP的问题了。

4、spring的五大特点

侵入式解释:

 侵入式:参数必须要依赖其他容器的支撑

即某些类型或API是依赖于别的api的或者是依赖于别的容器的

例如下图中的HttpServletRequest是依赖于tomcat服务器的,所以就叫侵入式

而spring是非侵入式的,里面的东西都归属于自己。

5 、spring的八大模块

 IOC是最核心的,AOP是依赖IOC基础上的,其余的模块都是依赖IOC和AOP

Spring web:可以去集成其他的MVC框架。struts、webwork都数据MVC框架

Spring MVC:自己的MVC框架

SpringDAO:自己的JDBC操作

SpringPRM:集成别人的ORM框架

6、spring的jar包介绍图(重点)

7、总结

我们项目开发时,不管是什么项目,哪个项目,都需要做一些基础的操作,并且这些操作都是一样的。例如我们连接数据库这个动作,都是一样的连接方式,所以我们就可以通过框架的方式去配置这个动作,就不需要每连接一次数据库就写一遍连接数据库的操作,这样我们的项目就可以减少很多冗余的代码。

这就是框架,帮我们减少了很多重复的代码,我们只需要关注自己的业务逻辑就可以了。

以上就是我对spring框架的理解啦,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值