您的位置:首页 > 文旅 > 美景 > 无锡网站建设选千客云网络_中石化建设工程电子招投标交易网_百度快速收录软件_公司推广咨询

无锡网站建设选千客云网络_中石化建设工程电子招投标交易网_百度快速收录软件_公司推广咨询

2024/12/23 8:02:50 来源:https://blog.csdn.net/rainingCSDN/article/details/144344888  浏览:    关键词:无锡网站建设选千客云网络_中石化建设工程电子招投标交易网_百度快速收录软件_公司推广咨询
无锡网站建设选千客云网络_中石化建设工程电子招投标交易网_百度快速收录软件_公司推广咨询

目录

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 {@Overridepublic void delete() {System.out.println( "正在删除用户数据");}
}
public interface UserService {String deleteMan(String name);
}
public class UserServiceImpl implements UserService {@Overridepublic 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框架的理解啦,希望能帮到大家,有问题的地方欢迎大家一起讨论!

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com