Spring的功能

今天药忘吃喽~ 2022-09-25 01:24 112阅读 0赞

Spring是什么?Spring是于2003 年兴起的一个轻量级的Java 开发开源框架,这是百科上面写的;Spring是一个轻量型框架,能够帮助所有开发团队构建简单、快速、便携和灵活的基于JVM的系统和应用,这是随便百度搜索就能看到的。(这些东西看看就好,你不用的话很难去理解这些。)

Spring是干什么的?有什么用?答:整合框架,IoC,AOP。(至于像事务管理等不算是核心作用,事实上AOP也不算是核心功能)

在说Spring的作用之前,先说明一点,所为框架,其最主要目的是为了方便程序员快速开发,所以并不是所有项目都必须要用可以用到的框架,而是哪些框架适合本项目,从而去采用这些框架,像中小型项目有的时候采用某些框架开发效率还不如不采用,而想要知道某一个框架的好处,只有真正碰到相关问题,采用了这个框架之后才能真正理解。

当然,有前人的经验下,事先可以了解这些框架的作用,从而针对性的在项目中采用。

​1.整合框架

随着发展,业内碰到的问题越来越多,越来越不一样,各种各样的新式框架针对性的冒出,你想做一个适合某一方面的永久框架,哪怕这个组织的开发人员也是随着时间不断更新版本,但仍有力不逮之时(这也是为什么软件趋向于开源的原因),更不用说,有的框架从一开始理念就错,或者不适合当今环境(或者新出的环境,变化太快),所以Spring发展到现在最主要的作用,我觉得已经不是IoC(虽然这个功能仍然是它的一个重要功能),而是整合各种框架于一体,方便开发人员快速开发。

什么是整合其他框架呢?说的抽象点,Spring就像润滑剂,任何它支持的框架都可以被它糅合在一起使用,说的实际点,就是你可以在Spring的配置文件上简单的的配置几句,就可以使用其他的框架了,而且重要的是,不同框架的功能,可以以同种形式(Spring bean)进行交互(Spring把它们的功能转换成自己可以理解的bean,然后进行交互)。不用Spring,整合其他框架也行,但当你使用的框架多了,使用Spring整合它们会容易得多。

2.IoC

IoC(Inversion of Control)控制反转,对象创建责任的反转,简单的来说就是:Java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用他的合作对象时,自己均要使用类似new object() 这样的语法来完成合作对象的创建工作。但这样,你会发现:对象间的耦合度高了。而IoC的思想是:让容器来做这些工作(创建协作对象),而不是对象,对象只需要关注业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了。Spring容器就像是个大的生产对象的工厂,使用者不必知道Spring容器是怎样创建对象的,你只要告诉Spring容器你需要什么样的对象,Spring容器就会去查询有没有你要的对象,有就传给你,没有就报错。

具体的做法,书写相应的Java类(通常是一个简单的POJO),在配置文件中,配置相应的bean,然后使用相应的方法注入,再然后,使用对应的方法引用。(这些还是参考这边:Spring简单例子。)

3.AOP

AOP,即Aspect-Oriented Programming,面向切面编程,它可以说是OOP(Object-Oriented Programing,即我们常说的面向对象编程)的补充和完善。在OOP中,我们引入封装、继承和多态性等概念来建立一种对象层次结构(层次是由上而下的“竖向”关系),但是,当那些分散在整个系统各个地方的对象有共同行为,需要代码重用的时候,OOP显然力不从心。实际上,OOP只允许使用者定义 “竖向”的关系,但不能定义 “横向”的关系,比如日志功能。日志代码我们知道,通常水平地分散在系统各个地方的众多对象中,而与它所在的上面对象毫无关系,如果用OOP方式设计系统,最终肯定会导致大量的重复代码,显然不利于代码的重用。

使用AOP技术就不会出现如上问题,AOP就像一把刀一样,将要加入的行为横向切入封装的对象内部,这些被多个类使用的行为则是被集中封装在一块,构成模块,即切面。AOP的实质是将与业务无关,但却是和众多业务模块有共同行为的逻辑或责任封装起来,这样一来,减少了系统的重复代码,降低耦合,而且分层的思想,有利于未来的修改和拓展等维护性。

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring功能

    Spring是什么?Spring是于2003 年兴起的一个轻量级的Java 开发开源框架,这是百科上面写的;Spring是一个轻量型框架,能够帮助所有开发团队构建简单、快速、便

    相关 Spring框架主要功能

    Spring框架的主要功能  组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:  核心容器:核心