我所理解的MVC,Spring ,SPring Mvc
简单介绍一下MVC,Spring ,SPring Mvc
1.mvc指的是?
Mvc是一种软件的设计典范把,全称 Model View Controller ,模型---试图---控制器的缩写,是一种对web应用表现层的处理模式。
2.Spring指的是?
嫌弃墨迹的可以直接跳到–》》(4)骨灰级阶段 下面进行了解哦
我们先抛开spring是什么,我们先来讲一讲生活。毕竟技术来源于生活,他也需要追求完美对吧。
那么正是因为随着互联网的千变万化,各种当前的技术或者老的技术已经年纪大了,需要更高的技术来支撑互联网的发展。
因此各种技术与软件也需要和人一样迭代更新,开枝散叶。技术也要跟随时代的潮流而不断更新。
在这里我也了解到其他的大神介绍的一篇发展史,可以更加了解spring它如何降临到世间???
老一辈的软件开发人员一般经历了从Model1到Model2,然后到后来的三层模型,最后到现在的Spring Boot。如果从Model1到Model2说起到我们现在使用的Spring Boot为整个时间轴的话,大致可以分为4个阶段:
(1)初级阶段:使用Model1/Model2/三层模模型进行开发;
(2)中级阶段:使用EJB进行分布式应用开发,忍受重量级框架带来的种种麻烦;
(3)高级阶段:使用Spring春天带给我们的美好,但是还要忍受很多繁琐的配置;
(4)骨灰级阶段:使用Spring Boot,畅享“预定大于配置”带给我们的种种乐趣!
************** Spring是 *****************
一个开源框架,基于IOC(DI)控制反转,和AOP面向切面编程的容器框架。
为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理
就是将对象的创建权交给spring容器管理,我理解的可能粗浅,望大佬指正
ioc,即inversion of control,(控制反转),是一种设计思想,不是什么技术,一个重要的面向对象程序的法则。
ioc容器控制了对象,主要控制了外部资源的获取(不只是对象包括比如文件等)
传统程序设计中,是直接在对象内部通过new进行创建对象,是程序主动去创建对象。
而ioc有一个专门的容器来创建这些对象,即由ioc容器来控制对象的创建。
为何是反转,那些方面反转?
因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转。
IOC,从操作上来看,要么通过XML配置实现,要么通过注解的方式实现。在实际开发中,越来越流行注解的方式。
需要根据你使用到的功能,来进行依赖的引入,以及XML的Schema约束引用。
Spring的核心配置文件,名称和位置不固定,不过在实际开发中,一般指定为applicationContext-xxx.xml的方式。这种方式,有2个好处:第一,可以对Spring的配置文件进行分模块管理;第二,由于统一的前缀,方便正则加载这些配置文件。
优点:
ioc能指导我们如何设计出松耦合、更优良的程序。
缺点:
在ioc/DI思想中,应用程序就变成被动了,被动的等待IOC容器来创建并注入它所需要的资源。
IOC VS DI
IOC,控制反转;DI,依赖注入;
只有把对象交给Spring,才能由Spring帮助完成属性设置;因此,依赖注入不能单独存在,需要在IOC基础之上完成操作。
DI(依赖注入) DI-Dependency Injection 即依赖注入:组件之间依赖关系由容器在运行期决定。
理解:谁依赖谁?
应用程序依赖于容器。
为什么依赖?
应用程序需要ioc容器来提供对象需要的外部资源.
谁注入谁?
ioc容器注入应用程序某个对象,应用程序依赖的对象。
注入了什么?
注入某个对象所需要的外部资源(包括对象、资源、常量数据)。
IOC和DI是同一个概念的不同角度描述,也可以说ioc是由DI实现的。
关于AOP
AOP的实现,一种横向抽取机制,依赖于动态代理模式。
关于AOP的几个重点概念:
JoinPoint:连接点,说白了,就是可以被增强的方法;
PointCut:切入点,对哪些JoinPoint进行拦截;
Advice:通知,就是拦截后的动作;
Aspect:切面,把增强应用到具体方法的过程;
Spring的AOP需要借助aspectj来实现,可以通过XML,也可以通过注解来完成。
比如,采用XML方式的话,需要指明用A类的哪个方法对B类的哪些方法上进行增强,这里就涉及到execution表达式了;
比如,采用注解方式的话,就更加简单了,先在XML中开启AOP(),然后在增强方法上直接使用类似@Before(value=“execution(具体的表达式)”)即可;
其实,在实际开发中,我们对于AOP最常用的就是事务了。
例如:给这个方法加日志,执行方法前进行拦截等。
Spring的事务管理
Spring的声明式事务管理,用的最多的就是基于注解的方式。
对于多个数据源,当然,我们需要定义多个事务管理器,同时也得开启事务注解。多个事务管理器,可以通过qualifier属性进行区分。
配置完毕后,直接在service层的类或者方法上,使用
@Transactional(value = “gcs”, rollbackFor = Exception.class)
3.SPring Mvc指的是?
是一个类似于Struts2的MVC框架,作用是:
--->> 接收浏览器请求
--->> 向浏览器做出响应
#### Spring Mvc的工作流程
1.前端控制器(拦截器),先拦截用户的请求,
2.然后交给控制器(具体的处理器)进行处理,并将处理的结果返回给前端控制器(拦截器)
3.拦截器将接收的数据分配给jsp页面,并进行渲染
4.最后将渲染的结果交给浏览器
上一篇: 在IDEA中Spring的入门(一)
下一篇: Spring 入门(一)
推荐阅读
-
我所理解的MVC,Spring ,SPring Mvc
-
Spring MVC 中获取session的几种方法(小结)
-
Spring MVC的优点与核心接口_动力节点Java学院整理
-
spring mvc中的@ModelAttribute注解示例介绍
-
浅谈spring和spring MVC的区别与关系
-
j2ee 简单网站搭建:(二)添加和配置 spring + spring-mvc 的 mvc 开发环境
-
Spring MVC Interceptor 实现性能监控的功能代码
-
spring MVC要注意的地方 博客分类: Java Web springmvcmvcModel注意的问题返回值
-
spring MVC要注意的地方 博客分类: Java Web springmvcmvcModel注意的问题返回值
-
Java中struts2和spring MVC的区别_动力节点Java学院整理