欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

我所理解的MVC,Spring ,SPring Mvc

程序员文章站 2024-02-26 18:53:46
...

简单介绍一下MVC,Spring ,SPring Mvc

1.mvc指的是?

		Mvc是一种软件的设计典范把,全称 Model View Controller ,模型---试图---控制器的缩写,是一种对web应用表现层的处理模式。

我所理解的MVC,Spring ,SPring Mvc

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的工作流程

我所理解的MVC,Spring ,SPring Mvc

我所理解的MVC,Spring ,SPring Mvc
1.前端控制器(拦截器),先拦截用户的请求,
2.然后交给控制器(具体的处理器)进行处理,并将处理的结果返回给前端控制器(拦截器)
3.拦截器将接收的数据分配给jsp页面,并进行渲染
4.最后将渲染的结果交给浏览器

相关标签: 入门 spring