快点进来!加深你对spring框架的理解!


以下内容仅为笔者个人知识储备,其中可能会有错误,欢迎指正。另外我也会不断更改其中的内容,使其更加完善,更加科学。

概述

什么是spring框架呢?其实spring框架就是一个采用了独特编程思路的Java程序。spring利用Java提供的反射机制,将原本Java对象的创建过程,交给了spring框架来控制,把本来在Java程序内创建对象,变成了通过配置文件中的标签来设置,然后交给spring来创建。甚至通过简单的注解,就可以创建,并将创建好的对象自动装配到它该去的地方。
这样做的好处是十分明显的,我们不需要再去管理那么那么多的对象了,而且可以方便的与别的框架进行结合。
spring的形成,技术方面主要是基于Java的反射机制,思想方面主要是基于一个外国人的一片著作中提出的思想。
spring中蕴含的思想主要包含了IOC和AOP。
IOC是通过DI来实现的。
AOP是通过动态代理来实现的。

IOC(DI)

所谓IOC,就是控制反转,控制是指对对象的控制,反转是一个动词。也就是说,我们将控制权反转了,本来编程中,是我们在控制对象的生成,但现在,我们将对象的生成过程转移给了spring框架,我们只需要在配置文件中将需要交给spring管理的对象的类的信息写入就可以了,我们需要使用这个对象的时候,直接找spring就可以了。更进一步,我们甚至可以利用自动装配技术,让需要这个对象的时候,自动生成并且放置到相应的地方,进一步减轻开发压力。
上一段中,IOC(控制反转)是一种思维模式。而这种思维模式的具体应用,是通过DI(依赖注入)来实现的,也就是是利用反射机制将我们对对象创建的控制权转交给spring框架。举个例子来说,现在有两个类A和B,其中Class A在创建过程中,需要用来Class B,原本我们的方法是在A中new一个B的对象,但现在我们不需要自己操作,只需要在A中定义出一个B的接口即可,spring可以自动的通过B的信息,生成一个B的对象,并赋值给A,这样就实现了类与类之间的解耦。原本在代码中写死了的实现类,现在只要保持接口不变就可以通过灵活改变实现类来实现了。
特殊的,在通过spring赋值的时候,还可以采用自动装配技术,让spring自动为合适的接口赋值,但是要保证唯一性,否则会抛出异常,装配失败。自动装配技术是一把双刃剑,如果正确使用,可以减少手动指派所需要配置的,但如果不熟练,会产生各种错误。
实现原理:IOC的实现原理是通过在工厂类中,读取配置文件中的内容,并根据读取到的内容,利用反射机制生成对象并将对象赋值给对应的接口。
这样就实现了接口和实现类的解耦合。

AOP

AOP就是面向切面编程,是基于IOC,通过动态代理的设计模式来实现的。顺带一提,整个spring框架,都是基于IOC来实现的,它是整个spring实现各种各样功能的基础。
我们都知道OOP,也就是面向对象编程,那这个AOP是不是学过之后就不要OOP了呢?其实不然,AOP只是作为OOP的一个补充罢了,这两种编程方式所解决的问题是不同的。OOP解决的是纵向的问题,而AOP解决的是横向的问题。比如,我们现在有五部电影,这五部电影演的都不同,有的是动画,有的是真人,有的题材是爱情,有的题材是科幻,但归根结底,都是电影,他们有着相同的某些属性,比如时常,比如价格等,都具有放映功能,我们将这些具有相同的属性或者方法的对象抽象出来成为父类,就是OOP解决的问题。而我们放映一部电影,需要在放映前关闭灯光,播放一堆广告,等到现场安静了,才开始放映,在放映之后,需要打开灯光,需要打扫房间,这样一系列过程中,可以发现其实只有放映的电影是不同的,而其它步骤是相同的,我们将这些重复的步骤抽取出来,就是AOP解决的问题。

使用流程

spring框架由于采用了IOC思想,使得编程思路与过去原生Java编程发生了很大的变化,如果能相应的转变我们的开发思维,其实可以大大的提高我们的开发效率。

导jar包

导入jar包自不必说,登录spring的官方,下载jar包和帮助文档即可。另外,spring组织基于Eclipse又开发出了STS,这个IDE可以视为spring框架适配版,可以考虑采用之。

写配置

首先我们要知道,整个IOC的核心都在ApplicationContext接口上,是Java和spring框架配置文件的连接点,配置文件中所有的配置都是为了这个接口服务。
spring的配置文件很简单,将namespace导入之后,只需要进行< bean >标签配置,就可以将对象加入到spring管理中,这样就可以开启spring对对象的管理了。
当然,spring的配置文件还包括有很多的部分,如对事物的配置能,但暂时学到这些就已经可以开始使用了。
另外,配置文件的命名一般采用applicationcontext.xml作为默认命名。

基于注解方式工作

上述的各种功能的实现,都是通过在配置文件中进行设置实现的,可以发现,这样的代码量也不小,因此在spring中实际上提供了另外一种简便的方式来实现对各种对象的管理,就是注解方法。只需要在我们想要管理的类上添加上相应的注解,就可以让spring接管。常用的是@component注解和@autowire注解,前者将该注解下的类加入到spring中,后者在生成新对象的时候自动装配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架是一个开源的Java应用程序开发框架,它提供了一系列的解决方案和工具,用于简化企业级应用程序的开发。以下是对Spring框架的一些理解: 1. 轻量级:Spring框架的设计目标之一是保持轻量级,它不会强制引入过多的依赖或复杂的配置。使用Spring,你可以选择性地使用各个模块和功能,以满足你的需求。 2. 控制反转(IoC):Spring框架通过控制反转(IoC)容器来管理对象的生命周期和依赖关系。你可以通过配置文件或注解来描述对象之间的依赖关系,而不需要显式地在代码中进行硬编码。这样可以提高代码的可维护性和可测试性。 3. 依赖注入(DI):依赖注入是控制反转的一种实现方式,它使得对象不需要自己创建或管理它们所依赖的对象。Spring框架通过依赖注入将所需的依赖关系注入到对象中,使得对象之间解耦,并且方便进行单元测试和模块化开发。 4. 面向切面编程(AOP):Spring框架提供了面向切面编程的支持,使得你可以将横切关注点(例如日志记录、事务管理等)从核心业务逻辑中分离出来,并通过配置文件或注解的方式进行统一管理。 5. 企业级开发支持:Spring框架提供了许多企业级开发的功能和扩展,如集成事务管理、安全性、远程访问、缓存管理等。这些功能可以帮助开发者快速构建高可靠性、可扩展性和安全性的企业级应用程序。 总结来说,Spring框架是一个强大而灵活的Java开发框架,它通过控制反转、依赖注入和面向切面编程等特性,提供了一种优雅的方式来构建和管理Java应用程序。它的设计目标是简化开发过程,提高代码的可维护性和可测试性,同时提供了丰富的企业级功能和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值