`
灬烟丶醉
  • 浏览: 9498 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

Spring 侵入式和非侵入式

 
阅读更多

1.非侵入式的技术体现 允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口。

2.如何实现非侵入式的设计目标的

1)应用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组间BeanFactory

2)配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入

3)优点:允许所开发出来的应用系统能够在不用的环境中自由移植,不需要修改应用系统中的核心功能实现的代码

 简单说一下我的理解吧。假设大家都想要把用户代码塞到一个框架里。侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。 例如: 使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。 使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置完成依赖注入后就可以使用,此时,spring就没有侵入到我业务类的代码里。 侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。 非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。 这两种方式都有各自的优缺点吧,主要看实际开发时怎么权衡了。

 

1
3
分享到:
评论
2 楼 灬烟丶醉 2013-10-22  
  哦。。谢谢你的评论。。我会找一些资料。。改掉的。。
1 楼 wenhemu 2013-10-22  
spring 某些时候 只是没有在编译期 侵入java代码 但是在执行还是侵入了

相关推荐

    swift-LSAnimator易于阅读和写入非侵入式多链动画框架

    Swift-LSAnimator是一款专为iOS开发者设计的轻量级、易于理解和使用的动画框架,它以非侵入式的方式提供多链动画支持。在Swift编程语言中,动画的实现通常是通过Core Animation或者UIKit提供的API,而LSAnimator则为...

    spring编程式事务实现

    Spring提供了两种主要的事务管理方式:声明式事务管理和编程式事务管理。本篇文章将聚焦于编程式事务管理,特别是如何通过`TransactionTemplate`进行事务控制。 1. **Spring编程式事务管理**: 编程式事务管理允许...

    基于OSGi和Spring开发Web应用.doc

    Spring 是一个轻量级的J2EE开发框架,特点是面向接口编程和非侵入式的依赖注入。将 OSGi 和 Spring 结合能充分发挥二者各自的特长,更好地满足企业级应用开发的需求。 在基于 OSGi 和 Spring 的 Web 应用开发中,...

    Spring2.52 开发手册

    spring2.52 Spring为编写企业应用... 我们将Spring设计为非侵入式的(并且以后也是如此),这意味着应用基本上不需要依赖框架本身 (或者肯定是最小的,取决于所使用的部分)。 这份手册提供Spring的功能参考指南。

    Spring 简介 Spring 简介

    Spring 框架的轻量级特性体现在其小体积上,其核心库的JAR包大小仅1MB多,且它采用了非侵入式设计,即应用程序代码并不需要直接导入Spring的包,这使得Spring可以在不修改原有代码的情况下方便地集成到现有的系统中...

    spring详细教程

    通过其非侵入式的设计、IoC 和 AOP 等特性,Spring 能够极大地提高开发效率,并促进代码的可维护性和可扩展性。无论是简单的 Web 应用还是复杂的企业级系统,Spring 都能提供一套完整的解决方案。

    spring 重要的概念讲解

    Spring框架是Java开发中不可或缺的一部分,它以轻量级、非侵入式、容器和框架的形式提供了强大的功能。本文将深入讲解Spring中的重要概念,包括AOP(面向切面编程)、DI(依赖注入)和IOC(控制反转)。 首先,...

    spring in action & 精通spring

    6. **AOP模块**:提供了基于代理的AOP实现,可以定义切点(Pointcut)、通知(Advice)、切面(Aspect)等,实现对代码的无侵入式增强。 7. **数据访问/集成**:Spring支持JDBC、ORM(如Hibernate、MyBatis)和OXM...

    【狂神说】spring PDF学习总结笔记 Spring5.pdf

    Spring框架的优点在于它是轻量级的、非侵入式的,同时支持IoC和AOP,能够处理事务并整合多种框架。Spring的扩展包括Spring Boot和Spring Cloud。Spring Boot是一个快速开发的脚手架,强调约定优于配置,简化了Spring...

    Spring Framework 4 参考文档中文版.docx

    * Spring Framework 被设计成非侵入式的,这意味着您的领域逻辑代码通常不依赖于框架本身。 二、依赖注入和控制反转 * 依赖注入(Dependency Injection)是 Spring Framework 的核心概念。 * 控制反转(Inversion ...

    Spring框架的简单实现

    【SSH进阶之路】一步步重构容器实现Spring框架——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十) 【SSH进阶之...

    Spring学习笔记(精华全记录)

    2. **非侵入式**:Spring设计为非侵入式的框架,这意味着即使项目不再使用Spring,原有的代码逻辑依然可以正常运行。这一点与Struts等框架形成对比,后者可能会对项目造成一定的侵入性。 3. **面向切面编程 (AOP)**...

    笔者学习Spring4.3.7用到的jar包

    这使得我们可以编写非侵入式的代码来处理横切关注点,如事务管理。 4. **Spring MVC**:Spring Web MVC是一个模型-视图-控制器框架,用于构建Web应用程序。它提供了处理HTTP请求、模型绑定、视图渲染等功能。Spring...

    spring+mybatis的声明式事务

    Spring提供两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理通过编写代码来控制事务的开始、提交、回滚等操作,灵活性高但侵入性强。相比之下,声明式事务管理则更加简洁,它通过配置或注解来...

    spring5个 jar

    Spring JDBC模块提供了与数据库交互的抽象层,简化了数据库访问,通过JdbcTemplate和SqlSessionTemplate等类,可以编写无侵入式的SQL操作代码,降低了数据访问的复杂性。 在实际项目中,这五个JAR文件通常会一起...

    Spring框架核心--入门适合初学者

    Spring以一种非侵入式的方式来管理你的代码, Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring Spring框架的主页:http://www.springsource.org/ Spring框架下载地址:...

    01.Spring框架简介_spring_spring发展历程_

    4. **非侵入性**:Spring不强制使用特定的编程模式或技术,允许开发者自由选择适合的工具和技术。 5. **全面支持**:Spring提供了对JDBC、ORM、事务管理、Web应用、缓存、任务调度等企业级功能的全面支持。 6. **...

    spring 黑马教程

    Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring。 Spring的组成包括核心类库和引入的第三方类库。核心类库是Spring框架的基础,它提供了框架的...

    Spring讲座+技术手册+简介

    在这里,你可以了解到Spring的IoC(控制反转)容器是如何管理对象的生命周期和依赖关系的,以及Spring如何通过AOP实现非侵入式的横切关注点,如日志、事务管理等。 最后,"Spring"可能是一个包含其他Spring相关材料...

    Spring插件安装图解

    具体描述 Spring: 轻量级:Spring 是非侵入性的 - ...一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)

Global site tag (gtag.js) - Google Analytics