`
xuyuanshuaaa
  • 浏览: 396272 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于spring理解

 
阅读更多
Spring容器时产生Bean的工厂(BeanFactory),用于管理容器中的Bean。
   1.IOC(控制反转)
      通过BeanFactory找到相应的Bean,方法是getBean("id")
     id:applictionContext.xml中配置的bean中的id属性
     具体由谁来实现,具体操作中不实现,交由spring来进行处理(即class属性)
   <bean id=""  class="" />
  2.DI(依赖注入)
    让bean与bean之间以配置文件组织在一起,而不是以硬代码的方式耦合在一起

架构在里,应用起来清晰明了。
一切的框架,都是为了让您更关注于业务逻辑,而不为其他的事操心。

企业应用的项目
你就知道IOC和AOP的强大了,小项目一般优势不明显。
现在到了spring3.x已经实现了注解形式,可以更加轻便的进行开发。

spring的IOC和AOP 模式
其实用spring最好的地方就是实现代码的复用。

首先spring的设计原则是非侵入性的,就是实际业务逻辑代码中感觉不到spring框架的存在,spring只是在其中起到一个实例产生的作用,然后把实例分配给需要的对象。这种设计的好事就是可以随时随地的把某个业务逻辑很轻松的从整个系统中抽离出来再在无任何修改的情况下用到其他系统中去。
然后就是切面的编程,这种设计是灵活的操作织入,例如你的某个业务逻辑是执行存款,存款这个业务之前之后都应该有某些附加操作,例如用户登录,检查余额,记录存款日志信息,但是这些不能够放在存款主业务当中,这个时候就可以用面向切面的方式灵活织入到存款业务中,但是这个过程有不需要改变原存款业务代码和逻辑实现。如果将来某个时候这些副业务刚改,例如我不想记录存款日志信息,但是我又要加入打印出存款细节的附加操作,这个时候只要把记录日志剥离出来,再植入打印功能。同样不需要更改源代码。

spring这些设计的终极目标就是避免同样或者相似功能在不同系统中的重复开发而设计的

(1)web Service在启动时都会将一些配置文件中定义的bean都实例化装载进去,这跟我们在使用时,通过new再实例化这个bean的对象然后使用有什么区别,(性能跟快,或还有其他什么优点)
回答:
首先
配置文件中定义的bean并不是都在启动时实例化。
<bean id="accountService" class="com.foo.DefaultAccountService" scope="singleton"/>
注意bean有一个属性scope,只有在scope没有配置或配置为如上时,启动时才实例化。(如果一个singleton的bean依赖一个 prototype的bean,那么这个prototype的bean在singleton的bean实例化时也会实例化)
如果定义为scope="prototype"那么只有在这个bean被使用时,才实例化,而且每次都是一个新对象,不是单例。
其次:在配置文件中声明bean使得spring可以管理这些bean,比如声明式事物功能,就需要你的bean在配置文件中配置。在实例化时 spring会为你声明的bean生成一个代理对象,代理对象在调用bean的方法前后加上事务控制逻辑。
备注:spring管理bean这样在bean初始化过程中,spring可以做很多事情,比如你写一个pojo,spring通过配置就能让他成为rmi,就是在实例化过程,对这个pojo做了更多的处理,不只是简单的new一个对象出来。
在比如只有spring管理的bean才支持spring的AOP机制。可以使用Aspectj和spring集成,对非spring管理的 bean施加AOP
再次:减少代码中依赖耦合。
(2) 同样的在配置文件中我们可以ref另外一个bean,这样做又是为什么呢?(我们同样可以使用时new一个这个实例)
回答:
把依赖关系定义在配置文件中。
不要再代码中表现依赖关系,这样在依赖关系有变化的情况下,可以通过配置文件的修改
达到目的,而不需要修改代码。
分享到:
评论

相关推荐

    方志朋版——深入理解Spring Cloud与微服务构建.pdf

    《深入理解Spring Cloud与微服务构建》是针对Java开发者,特别是对微服务架构感兴趣的开发者的一本重要参考资料。Spring Cloud作为目前最流行的微服务框架之一,它提供了构建分布式系统所需的多种工具和服务,包括...

    一步步深入理解Spring内部原理-带源码

    为了深入理解Spring的内部原理,我们可以从以下几个关键知识点入手。 1. **依赖注入(Dependency Injection, DI)**:这是Spring的核心特性之一,允许对象之间的依赖关系在运行时被外部容器管理,而不是由对象自身...

    《深入理解SpringCloud与微服务构建》_sample.pdf

    《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf 《深入理解SpringCloud与微服务构建》_sample.pdf

    深入理解spring cloud与微服务构建 pdf高清完整版

    深入理解spring cloud与微服务构建 pdf高清完整版下载 带目录

    Spring 揭秘 全面 深入了解Spring

    《Spring 揭秘:全面深入了解Spring》是一本旨在帮助开发者深入理解并熟练掌握Spring框架的权威指南。Spring是Java企业级应用开发中的基石,它以其模块化、易用性和强大的功能深受开发者喜爱。这本书详细阐述了...

    Spring容器的通俗理解及简单写法

    通过理解并掌握Spring容器的工作原理,开发者可以更有效地利用Spring框架,提高代码的可测试性、可维护性和可扩展性。在实践中,Spring的IoC容器可以帮助我们编写出更加灵活和模块化的代码,从而提升整个应用的质量...

    《深入理解Spring Cloud与微服务构建》word版本

    《深入理解Spring Cloud与微服务构建》是一本专注于讲解如何使用Spring Cloud构建高效、可靠的微服务系统的书籍。Spring Cloud作为目前最流行的微服务框架之一,它提供了大量的工具和服务,帮助开发者快速搭建分布式...

    spring_hibernate_struts2的理解

    这是对spring_hibernate_struts2的理解,可以在面试中简要的抓住重点进行陈述。

    《深入理解Spring Cloud与微服务构建》学习笔记(八)

    在深入探讨Spring Boot、Spring Cloud和Eureka的集成应用之前,我们先来理解这些关键概念。Spring Boot是一款用于简化Spring应用程序开发的框架,它通过自动配置、起步依赖和内嵌服务器等功能,使得开发者能够快速...

    深入理解Spring Cloud与微服务构建

    Spring Cloud作为Java语言的微服务落地框架,在Spring开源社区和Pivatol、Netflix两大公司的推动下飞速发展,得到了众多开发者的认可,Spring Cloud在未来很可能成为微服务框架的领导者和规范。

    Spring试题和答案.pdf

    下面关于Spring的说话正确的是(B C)(选择两项) )Spring是一个重量级的框架 )Spring是一个轻量级的框架 )Spring是一个IOC和AOP容器 )Spring是一个入侵式的框架 )下面关于IOC的理解,正确的是(A B)...

    Spring Framework 6 中文文档

    Spring Framework 6.0.8-SNAPSHOT 的中文文档是针对这一最新版本的详尽指南,旨在解决中文互联网上关于Spring框架翻译不准确、更新滞后的问题。文档通过Deepl AI 翻译并进行了人工校验,确保了内容的准确性和专业性...

    Spring Cloub 入门理解

    标题 "Spring Cloub 入门理解" 指向了学习和理解 Spring Cloud 的基础知识,这对于构建可扩展和容错的微服务架构至关重要。Spring Cloud 的核心组件包括: 1. **Spring Cloud Config**: 这是配置管理工具,允许你...

    Spring Boot整合Spring Batch,实现批处理

    通过查看这些文件,你可以学习如何将批处理逻辑集成到Spring Boot应用中,并理解如何配置和运行批处理作业。 总的来说,Spring Boot与Spring Batch的结合为开发批处理应用提供了一种强大而灵活的解决方案。通过学习...

    spring2.0升级到spring3.0.5的开发包

    Spring框架是Java应用程序开发中的一个核心组件,它提供了一个丰富的IOC(Inversion of Control,控制反转)和AOP(Aspect...对于开发者来说,理解这些变化和新特性是至关重要的,以便充分利用Spring 3.0.5带来的优势。

    个人理解Spring的工作流程

    整理了一下spring的加载, 个人对于Spring的流程的理解,望多多指正

    Spring中文文档下载

    这个压缩包包含Spring的多个中文版本的文档,可以帮助开发者深入理解Spring的功能和使用方法。 `Spring3.0中文版.chm`提供了Spring框架3.0版本的中文手册。3.0版本是Spring的一个重要里程碑,引入了基于注解的配置...

    传智播客2016spring资料4

    标题“传智播客2016spring资料4”揭示了这是一份关于Spring框架的教育资料,特别关注的是2016年传智播客教学课程中的第四天内容。传智播客是一家知名的IT教育机构,其课程通常深入浅出,适合初学者和有一定经验的...

    springcloud视频学习

    本资源包含了两部关于SpringCloud的视频教程,由尚硅谷出品,内容详实且易于理解,是学习SpringCloud的理想资料。 一、SpringCloud国内使用情况 在14.尚硅谷_SpringCloud_SpringCloud国内使用情况.avi这部视频中,...

Global site tag (gtag.js) - Google Analytics