spring mvc 上

MVC是一种架构模式,程序分层,分工合作,既相互独立,又协同工作,分为三层: 模型层、视图层和控制层。

MVC是一种思考方式

View:视图层,为用户提供UI,重点关注数据的呈现,为用户提供界面

Model:模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。

Controller:控制层,调用业务逻辑产生合适的数据(Model),传递数据给视图用于呈现。

Spring MVC 基本概念

1、DispatcherServlet: 前端控制器2、Controller: 调用业务逻辑生成model的地方

3、HandlerAdapter:DispatcherServlet通过HandlerAdapter调用controller

4、HandlerInterceptor:拦截器 该接口提供after postHandle preHandle 三个方法,调用controller前后使用

5、HandlerMapping:前端控制器与controller映射关系的类

6、HandlerExecutionChain: preHandle->Controller method->postHandle->afterCompletion的执行链

7、ModelAndView:model的具体表现

8、viewResolver:视图解析器,决定需要用哪个视图来进行视图的呈现。

9、view:界面

SpringMVC的动态概念:

1.用户发送请求request

2.DispatcherServlet拦截request 就需要找到一个Controller 如何找?

3.DispatcherServlet就把功能代理给了HandlerMapping

4.HandlerMapping根据配置 通过annotation找到Controller也找到了HandlerInterceptor

形成了一个HandlerExcutionChain 作为一个Handler或者是HandlerAdapter返回给DispatcherServlet

5.DispatcherServlet调用这个Handler或者是HandlerAdapter(找到Controller,Controller目的:生成ModelAndView) 生成ModelAndView 并返回给DispatcherServlet

6.DispatcherServlet调用ViewResolver(视图解析器)方法 返回View对象给DispatcherServlet

7.DispatcherServlet调用ModelAndView作为模型数据传递给我们的View完成了呈现 返回给DispatcherServlet

8.DispatcherServlet再把视图响应给用户


1.DispatcherServlet,HandlerMaping 只需要配置

2.Handler/HandlerAdapter忽略掉

3.Controller需要自己写

4.HandlerInterceptor(Controller调用前后干点啥)是一个接口,需要就写不需要就不用实现

5.ModelAndView:只是一个类 也可以使用Map把需要的放进去就好了

6.ViewResolver和HandlerMapping差不多只需要知道使用那种类型就可以了

7.view:不需要管具体的呈现。只需要管是哪一个就好了


综上所述:需要自己写的就是Controller 其他的就是配置

以上是springmvc的基本概念

下面在说下maven的知识,在开发中一般使用maven自动生成jar包,不在直接导入jar包

Maven是一个构建依赖管理的工具,主要三个方面:

POM:就是一个xml文件(pom.xml),包含很多信息,主要是依赖关系。通过配置完成我们的依赖管理。

Dependency:web应用程序中可能会依赖很多包,而引入的包可能还会依赖其他的包,这样依赖关系的层次会很深传递关系很长,导致lib下的包非常多。但开发人员往往不知道包之间的依赖层次关系,可能会耗费很大的精力去处理包间依赖的关系。maven为我们提管理了直接依赖关系和传递依赖关系,是透明的,不需要我们干预。

Coordinates(坐标):maven像一个仓库,各厂商都往里发布产品。通过groupId,atifactId,version,packaging(缺省为jar)可以确定一个项目的坐标,就可以唯一标识一个产品。1、下载并解压meaven.zip;2、配置环境变量, 名字M2_HOME ,值是meaven安装目录;3、path:%M2_HOME%\bin;;4、测试cmd:mvn -version。

maven镜像中心仓库建议大家选择阿里云的镜像地址,速度会更快一点,感觉官方是面向全世界的,毕竟我们还在墙内。

alimaven

central

aliyun maven

http://maven.aliyun.com/nexus/content/repositories/central/

将conf文件下的settings.xml文件复制到%HOME%\.m2目录下,为了避免以后更新了Maven,又要重新配置;

注意:%HOME%\.m2 要等运行过 maven 才会自动生成的。

镜像配置,每次访问Maven时候都先访问配置的这个库,下载所需要的软件包,这样可以降低中心仓库的负载,中心仓库为了避免大量访问造成的服务问题有时会拒绝我们的访问

访问英国的镜像仓库:

uk

uk Central

http://uk.maven.org/maven2

central

maven创建项目:

1.在继承Maven的eclipse中,windows—>prefrences---->Maven—>Installation—>将新下载的maven文件add进去,确保在user Setings中配置文件的路径是之前配置了mirror的配置文件setting.xml

2.运行命令创建项目

注意:需要指定创建项目的路径

例如:cd C:\Users\Workspaces\Eclipse 10

命令:

mvn archetype:generate -DgroupId=i-arthur -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp 参数解释:archetype:generate 调用插件 groupId:坐标artifactId:坐标的一个元素,目录结构的根目录名称archetypeArtifactId:目录类型的一个类型,此为webapp的类型

mvn archetype:generate -DgroupId=oc-loki -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeCatalog=internal

加个参数 -DarchetypeCatalog=internal

让它不要从远程服务器上取catalog:这样就不会卡在

Generating project in Interactive mode了archetype:generate 调用插件groupId:坐标artifactId:坐标的一个元素,目录结构的根目录名称archetypeArtifactId:目录类型的一个类型,此为webapp的类型

1、imprt-Maven-existing…导入项目

修改pom.xml:

…,只用指定版本spring,确定依赖管理

2、配置web.xml

(1)将前端控制器配入web环境

mvc-dispatcher

org.springframework.web.servlet.dispatcher

contextConfigLocation

/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml

1

3、mvc-dispatcher-servlet.xml

context:component-scan搜寻controller

mvc:annotation-driven让DispatcherServlet启用基于annotation的HandlerMapping

servlet.xml

context:annotation-config/

<context:component-scan base-package=“com.imooc.mvcdemo”>

<context:include-filter type=“annotation” expression=“org.springframework.stereotype.Controller”/>

</context:component-scan>

mvc:annotation-driven/

context:annotation-config/ --激活注解管理

<context:component-scan > --让DispatcherServlet搜索@Controller标注的类

mvc:annotation-driven 让DispatcherServlet启用基于Annotation的HandlerMapping(映射正确的controller)

告诉DispatcherServlet启用哪个view

pom.xml

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

映射正确的controller)

告诉DispatcherServlet启用哪个view

pom.xml

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

[外链图片转存中…(img-dMXWD9wG-1725948546416)]

高效学习视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值