Spring的功能

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值