spring

Spring——框架是一个开源的 Java 平台,它为容易而快速的开发出耐用的 Java 应用程序提供了全面的基础设施。

Spring的好处:

  1,控制反转(IOC)的思想,运用依赖注入(DI)的技术,让我们管理对象的时候再也不用new new new了!防止大量对象的创建!防止组件之间的强依赖!

  2,运用了大量的反射,代理,工厂方法,是我们学习编码技巧的最好模范!

  3,AOP(面向切面编程)技术,能够使用少量代码搭建完美的的日志管理,权限管理,运行期监控!

  4,低侵入性!让我们可以轻松耦合诸如struts,hibernate,mybatis,redis,memcache,amoeba,actibemq等包括数据层,控制层,缓存,数据中间件,消息中间件的中间件!

  5,低耦合特性:通过依赖注入特性,可以借助spring容器创建,管理对象,防止在代码中硬性注入对象,防止对象混乱!

  6,通过@transaction注解,可以实现声明式事务,在注解中的代码都可以在一个事务当中,实现最简单的事务控制,异常回滚!

  7,spring源码使用了诸如工厂,单例,代理,构造者,策略,模板等多种设计模式,是JAVA程序员写出优良代码的不二范例!

  8,提供大量诸如beanUtils,qstringUtils等优秀工具类!

 

Spring的模块主要为以下几类:

  

  比较重要的几个模块:

  1.Core(核心容器):核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是通过工厂模式来实现的。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

  2.AOP(面向切面):为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

  3.ORM(对象关系映射):对象关系映射,它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。spring中支持ORM的框架有hibernate、mybatis、JPA等。但是其中JPA是一种规范,hibernate和mybatis都遵循JPA规范。

  4.Web MVC:以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。

 

 

IOC——控制反转:

  

  全称为Inversion of Control,还有另外一个别名DI,Dependency Injection,依赖注入

  所谓IOC,就是由Spring IOC 容器来负责对象的生命周期和对象之间的关系。在编码阶段,没有实例化对象,也没有设置依赖关系,而把它交给spring来处理,spring会在运行阶段实例化,组装对象,这种做法颠覆了传统的的写代码实例化,组装对象,然后一步步执行

  通常控制层的类依赖服务层的类,而服务层的类又依赖的dao层的类,这是最经典的依赖结构,使用ioc控制反转的最佳例子,通过springIOC,在spring初始化的时候就向服务层的类注入dao层的类,向控制层类注入服务层的类,达到不需要new对象,就通过反转控制,实现各个类之间的相互依赖,提升代码简洁度,防止大量的对象创建,也可以防止组件之间的强依赖,达到高内聚,低耦合。

 

AOP——面向切面编程

   

  全称是:Aspect Oriented Programming,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,在某些特定的业务类上面织入日志,事务,或者安全校验,在执行这些业务之前或者之后执行织入的代码,都是aop的思想

 

ORM——对象关系映射

  全称是Object Relational Mapping,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。基于三个核心原则:简单:以最基本的形式建模数据。传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型创建正确标准化了的结构。通常一个实体类对象对应一个数据库表,表的字段就对应对象的属性

 

web MVC——模型-视图-控制器

  全称是Model-View-Controller,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。

  

 

posted @ 2020-09-14 17:10  JoelYe  阅读(127)  评论(0编辑  收藏  举报