学习spring也有一阵子了。好像有点了解了。下面是我所看到的spring。见笑了。
老生长谈IOC
概念:
IOC有名为Dependency injection ,指的是将对象的依赖关系倒置过来。通过其他方式将调用对象所依赖的被调用对象主动的注入,而不是像原始方式那样在对象里通过new的方式创建。而实现了IOC功能的容器就叫做IOC容器,spring便是这样一种容器。
why:
当我们的项目比较小的时候。spring的确起不了多少作用,一个简单的项目,就没有必要用spring这种“武器”了。但对于中大型项目,那就非常有必要,在大中型项目中。类之间的关系错综复杂。对象状态的维护(单例、多例),对象的创建过程,生命周期的维护,对象依赖关系的组织,将来需求变更所带来的对象的变更,对于一个大型项目而言,这些可是一个项目的最难维护的部分,而这块又是每个项目肯定会遇到的部分,spring的IOC容器就将这些问题统统搞定。是开发人员只需关注自己的业务逻辑。
功能清单:
1.对象的生命周期的维护,对象的创建、销毁。通过该部分功能,我们只需根据自己的业务逻辑添加其接口和实现。在将该实现交给spring管理。而我们业务逻辑需要的对象,只需问spring要,如果有必要。
2.对象依赖关系的维护。spring的IOC容器可以帮我们创建对象,自然就可以帮我们来管理对象之间的依赖关系。创建对象的时候自然会将对象之间的依赖关系注入。
3.对象状态维护。通过spring我们不必编写单例等维护对象存在状态的代码。
4.解耦系统。软件系统的设计目标,就是高内聚、低耦合。通过spring的IOC容器就可以将我们的系统彻底的解耦,我们编写的雷注册到spring后,并不知道谁会去使用。而我们类向spring获取的类也不知道其具体信息,仅仅知道是我们想要的类的子类或实现类或其本身。所有的关系都给spring。也即是所有的类通过spring间接通讯。没有直接的关联。这样便提高系统灵活性,便于后期维护。
优点:
1.对象装配逻辑独立应用程序,提高系统的灵活性。
2.核心逻辑的关系通过XML配置,便于后期维护。降低系统维护的难度。
3.解耦系统。这点就是上面这些东西。
4.低侵入性。spring的IOC是基于java标准。通过setter或构造函数注入,即使我们的bean脱离了spring同样可以使用。只不过需要我们通过另外一种方式实现rpnig的IOC。
5.虽然spring提供了一站试的解决方案,但还是与其他流行框架整合,使用其他框架时候,可以整合spring进来。用于管理系统框架和自己的对象。
灵活使用AOP
概念:
AOP就是横向编程。就是在我们原来类功能的前后添加我们其他的功能,而不影响现有的任何功能和代码。以维护系统的稳定性。也就是我们的只对扩展开放,对修改关闭设计模式目的的一种体现,过滤器就是一个例子,添加了我们需要过滤的条件,而原系统不需任何改变。
why:
OOAD设计时就要求我们高内聚、低耦合。模块划分清晰,自顶向下,逐层分解。而对于系统的权限控制等模块与其他模块有先后判断执行的关系。其他模块应该只关注于自己的功能实现,而不应该管理权限的实现。又例如数据持久层的事物管理与数据的操作逻辑是两个独立的部分。为了方便和灵活使用配置。AOP就应用在这些方面。
使用场景:
1.权限管理 --- 对系统的公共控制部分
2.事物管理 --- 繁琐代码编写。与其操作具有先后判断关系
3.sesion管理(hibernate) --- 共同代码管理
4.JMS,JNDI,JMX等功能与系统的集成。 --- 系统集成模块。
........
优点:
灵活,修改灵活;
替换简单。替换这些功能模块相对简单,不存在耦合关系。
以上只是对学习spring的总结,只是本人的一点理解。没有讲到实例。仅仅是概念的东西。
分享到:
- 2009-09-20 13:15
- 浏览 944
- 评论(0)
- 论坛回复 / 浏览 (0 / 1357)
- 查看更多
相关推荐
《Spring 揭秘:全面深入了解Spring》是一本旨在帮助开发者深入理解并熟练掌握Spring框架的权威指南。...通过阅读这本书,你将能够深入理解Spring的内部机制,更好地利用Spring来构建高效、可扩展的企业级应用。
《深入理解Spring Cloud与微服务构建》是针对Java开发者,特别是对微服务架构感兴趣的开发者的一本重要参考资料。Spring Cloud作为目前最流行的微服务框架之一,它提供了构建分布式系统所需的多种工具和服务,包括...
在进行ZK7、Spring4和Hibernate4的框架整合时,了解并正确使用Spring所需的jar包至关重要。 首先,Spring框架的基础包主要包括以下几个部分: 1. **spring-core.jar**:这是Spring的核心库,包含了IoC容器和基本的...
《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf
在给定的压缩包文件中包含的jar包是Spring框架及其依赖组件的关键组成部分,对于理解Spring的工作原理以及如何集成到项目中至关重要。下面将详细阐述这些jar包的功能及其在Spring中的作用。 1. **spring.jar**:这...
- **基本的Web开发知识**:对于从事Web应用开发的人来说,了解基本的HTML、CSS和JavaScript将有助于更好地理解Spring Web开发。 ### 常见问题与答案 针对学习者和专业人士在准备认证考试或面试过程中可能遇到的...
深入理解spring cloud与微服务构建 pdf高清完整版下载 带目录
为了深入理解Spring的内部原理,我们可以从以下几个关键知识点入手。 1. **依赖注入(Dependency Injection, DI)**:这是Spring的核心特性之一,允许对象之间的依赖关系在运行时被外部容器管理,而不是由对象自身...
《跟我学Spring3》系列教程是为深入了解Spring框架的开发者准备的一份详尽指南,尤其适合正在准备面试或提升自己Spring技术能力的人群。Spring框架作为Java开发中的核心组件,其重要性不言而喻,它为企业级应用提供...
首先,书中会介绍Spring的基本概念,包括IoC(Inversion of Control)容器和DI原理,这是理解Spring框架的基础。DI允许开发者通过配置文件或注解来管理对象之间的依赖关系,降低了代码的耦合度,提高了代码的可测试...
这个项目是针对初学者设计的,旨在帮助他们快速理解和上手 Spring Cloud。 1. **Spring Boot**: Spring Boot 是一个用于简化 Spring 应用程序初始搭建以及开发过程的框架。它预设了各种默认配置,使得开发者可以...
《深入理解Spring Cloud与微服务构建》是一本专注于讲解如何使用Spring Cloud构建高效、可靠的微服务系统的书籍。Spring Cloud作为目前最流行的微服务框架之一,它提供了大量的工具和服务,帮助开发者快速搭建分布式...
spring揭秘,了解spring内在运行逻辑
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。
了解并掌握Spring框架的这些核心知识点,将有助于我们更好地利用Spring进行项目开发,提高代码质量,减少维护成本。对于有志于深入学习Spring的人来说,阅读源码是一个极好的途径,能够帮助理解其设计理念,提升开发...
SpringCloud作为微服务解决方案的集大成者,为基于SpringBoot的应用提供了构建分布式系统所需的工具,如服务发现、配置管理、断路器、智能路由、微代理、控制总线等。它使得开发者能够轻松地在SpringBoot应用中实现...
综上所述,从Spring 2.0升级到Spring 3.0.5不仅意味着替换旧的jar包,更是采纳了一整套更加先进和完善的开发框架。这个过程可能会涉及到代码和配置的调整,但最终会带来更高的开发效率和更好的应用性能。对于开发者...
这个压缩包包含了Spring Security 4.0.0版本所需的jar包,这是一组核心组件,为构建安全的Web应用提供了基础。 1. **spring-security-core**: - `spring-security-core-4.0.0.CI-SNAPSHOT-javadoc.jar`:包含...
这个压缩包包含Spring的多个中文版本的文档,可以帮助开发者深入理解Spring的功能和使用方法。 `Spring3.0中文版.chm`提供了Spring框架3.0版本的中文手册。3.0版本是Spring的一个重要里程碑,引入了基于注解的配置...