`

漫谈Spring

    博客分类:
  • java
阅读更多

spring的官方下载http://www.springsource.org/download/
一、认识Spring
       Spring 是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
1. Spring降低组件之间的耦合度,实现软件各层之间的解耦。
2. Spring为我们提供了大量的服务,这些服务只需调用几个方法就能使用,很方便。下面提供一些具体的服务与方法:
3. Spring提供了单例模式、工厂模式等支持,开发人员不需要自己编写代码就能实现,只需做些配置即可:
4. 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
5. 容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。
6. Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。
在java的spring基础上又延伸了其他语言类型、应用环境的spring框架。比如说,.NET应用程序框架 Spring.NET、Spring框架的Delphi版本 Spring4D 、手机上的web应用开发Spring Mobile(springMVC的扩展)、Spring Android、Spring的Python移植版 Spring Python等诸多spring拓展型框架。
二、使用spring
       Spring的使用一般有这么几种技术
1. 控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
2. 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如事务(transaction)管理)进行内聚性的开发。
3. 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
4. SpringMVC——使用Spring可插入的MVC架构,可以选择使用内置的SpringMVC Web框架,也可以选择使用Struts这样的Web框架。
      springMVC通过controller层向view层界面提供接口,从而实现响应用户动作,达到数据流转的目的。
      spring的server层就是对业务的数据处理和逻辑判断。
      spring的dao层就是提供面向数据操作的接口,方便我们开发人员对用户动作提交的数据进行增删改查。

      Spring的完善性和封装性使得当我们要使用spring开发项目时,只需要在它的applicationContext.xml中配置:
1. 在spring中所用到的相应的功能件的地址
2. 自动扫描类路径
3. 数据源
4. session工厂
5. 事务bean
      然后就是把我们所用到的dao、server、controller等通过标签的形式注入到spring容器中,开发时只需要开发对应的界面--controller--server--dao 整套业务功能流程就能实现了。
三、Spring扩展
       既然spring的controller层通过springMVC给view界面提供接口,而每个子业务或子系统都有可能有自己单独的controller,这样一来给界面开放的接口是不是太多了,我们可不可以将这些接口集中起来然后再提供统一的接口给界面呢(这个想法源于我们主管)?就像厂家生产出的商品,要找代理商,再由代理商卖给顾客。
那么controller层是不是也可以加个代理机制,加了代理机制会产生什么副作用吗?
就像买卖东西通过代理商理论上肯定会比顾客直接在厂商那儿买商品的流程慢些,但实际上如果人流量太大,厂商还要兼顾生产和销售,势必会影响商品质量和服务质量,再算上其他人为因素…可想而知,还是代理渠道更稳固。有了代理,厂家只重生产,质量就能得到保证,代理商就一心搞销售,客户的需求就能更好的满足,而对于客户而言,我只要得到我想要的好商品就行了,这样就皆大欢喜了。就像厂商、代理商和顾客之间的关系一样,客户端、服务端加上了代理,由于有Java的反射机制,整个流程的速度肯定会比单一的客户端、服务端要慢点儿。但是这种运行流程速度在cpu的高速下基本是可以忽略的,而代理所起到的作用也远远高于它的弊端。
当这个想法成熟了,再通过springMVC的标注和java的反射机制来实现这个代理层也就很容易了。

分享到:
评论

相关推荐

    中英文spring chm

    在Spring的中英文资料中,你可能会找到关于Spring核心容器、数据访问/集成(包括JDBC、Hibernate和MyBatis的支持)、Spring Web、Spring Security(安全控制)以及Spring Batch(批处理)等方面的详细解释。...

    漫谈设计模式 (Java)

    此外,作者还引入了依赖注入(DI)和控制反转(IoC)的概念,这些都是现代轻量级容器(如Spring框架)的基础。 构建复杂结构的部分,书中探讨了如何通过组合和继承来构造强大的类结构,强调了组合优于继承的原则。...

    开发框架漫谈.rar

    虽然具体框架未详述,但常见的包括Java领域的Spring、Hibernate,JavaScript领域的Angular、React,Python的Django、Flask,以及.NET的ASP.NET等。每个框架都有其独特的特性和优势,选择哪个框架应根据项目需求、...

    通向架构师的道路(第1-20天)

    最近在学习SSH框架,看到大牛的博文,感觉很有指导...(第二十天)万能框架spring(二)maven结合spring与ibatis 一共27天,感兴趣的朋友可以去http://blog.csdn.net/lifetragedy/article/category/1175320 查看原创文档

    通向架构师的道路.rar

    3. **通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计.docx** 权限系统是任何大型应用的基础组件,确保数据的安全访问。此文档可能讨论了如何设计和实现一个基于数据库的权限控制模型,涵盖了用户角色...

    Java工程师新人入门书籍推荐

    - 《漫谈设计模式:从面向对象开始》:介绍了设计模式,对于软件设计至关重要,尤其是单例、工厂和代理模式。 - 《Spring 3.0就这么简单》:适合初学者快速掌握Spring框架的入门书籍。 - 《Java并发编程实战》:...

    通向架构师的道路(最全的资料)

    此外,"通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计.docx"聚焦于权限系统的构建,这对于任何涉及用户访问控制和安全性的系统来说都是基础。"通向架构师的道路(第二十二天)万能框架spring(四)使用...

    技术分享集(内含Java开发常用技术涉及的文档)

    java开发常用技术涉及的一系列文档,主要是为了存档,涉及文件较多,以下列出涉及到的技术和文档: ...工程师成长经验谈,漫谈工程师文化,漫谈工程师职业发展,图文详解 排序算法对比等。 如有需要,可自行下载。

    淘宝放单源码Java-agan-boot:gan-boot

    漫谈SpringBoot与SpringCloud分布式服务架构 01 SpringBoot 入门 1.为什么越来越多的开发者选择使用SpringBoot?它解决了什么问题? 2.SpringBoot的入门例子 3.SpringBoot 常用配置 4.SpringBoot 自定义配置 5....

    微服务Api网关框架1-10.7z

    网关技术选型.mp4):这部分可能会讨论不同的API网关选择,包括开源的Zuul、Spring Cloud Gateway、Kong等,以及自定义实现的可能性。Nginx因其高性能和灵活性,经常被选为API网关的实现工具。 3. **Nginx下载安装**...

    Java思维导图xmind文件+导出图片

    漫谈分布式架构 初识分布式架构与意义 如何把应用从单机扩展到分布式 大型分布式架构演进过程 分布式架构设计 主流架构模型-SOA架构和微服务架构 领域驱动设计及业务驱动规划 分布式架构的基本理论CAP、BASE...

    java 学习资料大全

    5. 注解:注解是元数据,用于向编译器或JVM提供信息,例如Spring框架中的@Autowired。 三、Java集合框架 Java集合框架包括List(有序,允许重复元素,如ArrayList和LinkedList)、Set(无序,不允许重复元素,如...

    软件开发所需所有jar

    2. **框架与库**:例如Spring Framework、Hibernate ORM、MyBatis、Struts、Play Framework等,它们为开发者提供了丰富的功能,如MVC架构、ORM对象关系映射、数据库操作等。 3. **工具类库**:如Apache Commons、...

    eclipse 使用xfire开发webservices server

    然而,随着技术的发展,现在更多的开发者可能会选择Spring-WS、Apache CXF等更现代的框架,它们提供了更多特性并保持了良好的社区支持。但了解和掌握XFire的使用,对于理解Web服务的原理和技术栈仍然是非常有价值的...

Global site tag (gtag.js) - Google Analytics