当前位置: 首页 > 科技观察

Spring:Spring相关知识介绍笔记

时间:2023-03-13 21:15:34 科技观察

一、Srping概念Spring属于开源框架。Spring是2003年开始流行的轻量级Java开发基础框架,为解决企业应用开发的复杂性而提供。解决方案。该框架的主要优点之一是其分层架构,允许用户自由选择要使用的组件。Spring还为J2EE应用程序开发提供了一个集成框架。Spring使用基本的JavaBeans来做以前只能用EJB做的事情。Spring具有简单性、可测试性和松耦合的特点。Spring的核心技术是控制反转(IoC)和面向方面(AOP)。2.Spring原理2.1控制反转(IOC)利用java的反射特性,让对象的创建无需new实例化和自动生产。这其实就是利用了java的反射特性。反射其实就是在运行时动态创建和调用对象,Spring是在运行时用xmlSpring配置文件动态创建对象并调用对象中的方法。就是把对象和对象之间的引用关系交给Spring容器统一管理。2.2Aspect-OrientedProgramming(AOP)AOP是基于OOP面向对象编程的前提和基础,主要用于将公共逻辑(日志记录、性能统计、事务处理、异常处理等)从普通代码逻辑中分离出来分离,从而降低各部分业务逻辑的耦合度。3.Spring框架结构Spring框架主要由以下七个模块组成:SpringAOP:面向切面的编程思想,同时提供事务管理能力。SpringORM:提供对Hibernate和myBatis等ORM框架的支持。SpringDAO:提供对DataAccessObject模式和JDBC的支持。实现业务逻辑和数据库访问代码的分离,从而降低代码耦合。SpringWeb:提供Servlet监听器的Context和Web应用的上下文。Spring上下文:提供Spring上下文。SpringMVC:提供MVC设计模式的实现。Spring核心:提供Spring框架的基本功能(IOC功能),如BeanFactory以工厂模式创建所需对象,通过读取xml文件实例化对象,管理组件生命周期等。四、Srping生命周期1.实例化Bean是我们经常使用的新方法;2、根据Spring上下文配置实例化的Bean(IOC注入);3、Bean实现BeanNameAware接口,调用其实现的setBeanName(String)方法,传递的是Spring配置文件中Bean的id值。在Spring配置文件中配置一个普通的bean即可);5、bean已经实现了ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法传入Spring上下文;6.bean关联了BeanPostProcessor接口,还有postProcessBeforeInitialization(Objectobj,Strings)方法,BeanPostProcessor经常被用来作为Bean内容的改变,而且因为这个方法是在Bean初始化结束时调用的,所以也可以应用于内存或缓存技术;7、Spring配置文件中的Bean如果配置了init-method属性,会自动调用配置的初始化方法。8、Bean关联BeanPostProcessor接口,会调用postProcessAfterInitialization(Objectobj,Strings)方法;注意:以上工作完成后,就可以申请这个Bean了,那么这个Bean就属于Singleton,所以一般情况下,我们调用的相同id的Bean都会是一个内容地址相同的实例。当然非Singleton也可以在Spring的配置文件中进行配置。9.当不再需要Bean时,它会经过清理阶段。如果Bean实现了DisposableBean接口,它将调用它实现的destroy()方法;10.最后,如果Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的destroy方法。5、Spring有什么优点?5.1.非侵入式设计Spring是一个非侵入式框架,它最大限度地减少了应用程序代码对框架的依赖。5.2.方便解耦,简化开发Spring是一个大工厂,可以将所有对象的创建和依赖的维护交给Spring容器统一管理,大大降低了组件之间的耦合度。5.3.支持AOPSpring框架提供了对AOP的支持,可以让一些常见的任务,如安全、事务、日志等统一处理,从而大大减少代码量,提高代码的复用率。5.4.支持声明式事务处理只需配置即可完成事务管理,无需手动编程实现事务逻辑。5.5.方便系统测试Spring提供了对Junit4的支持,可以通过注解方便系统测试。5.6.易于集成各种优秀的框架Spring不排斥各种优秀的开源框架,直接支持各种优秀的框架(如:Struts、Hibernate、MyBatis、Quartz等)。5.7.大大降低了JavaEEAPI的使用难度Spring对一些在JavaEE开发中非常不友好的API(JDBC、JavaMail等)提供了良好的封装,从而大大降低了这些API的使用难度。

猜你喜欢