我所理解的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.最后将渲染的结果交给浏览器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值