同时,XML文件内容本身不像Java文件一样能够在编译期事先做类型校验,所以也就很难排查XML文件中的错误配置。...Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样就可以有条不紊地来进行应用的开发。多数Spring Boot应用只需要很少的Spring配置。...可以使用Spring Boot创建Java应用,并使用java -jar启动它或者也可以采用传统的WAR部署方式。同时Spring Boot也提供了一个运行“Spring 脚本”的命令行工具。...Starter 正如Starter所命名的那样,Starter 就是用于快速启动Spring应用的“启动器”,其本质是将某些业务功能相关的技术框架进行集成,统一到一组方便的依赖关系描述符中,这样,开发者就无须关注应用程序依赖配置的细节...所有Spring Boot官方提供的Starter都以spring-boot starter-*方式来命名,其中*是特定业务功能类型的应用程序。
按照下面的几个方法修复错误,随便选一种就行 让程序部署的时候,把Spring MVC相关类库复制到lib文件夹中 ?..."/> base-package指定的就是存放Controller的包 做完这一步之后,重新启动项目,再次访问 http://localhost:8080/hi/say 这次应该还是404错误,不过比刚才的...",Controller执行结果发给View,这个View恰恰又是Controller本身,Spring发现这是个死循环,就不再执行直接报上面的错误了 这个错误我再Controller单元测试的时候也遇到过...,原理知道了就知道如何解决了 但是目前必须制定View的绝对路径,因为我们还没有配置 配置 ViewResolver,后边会专门说到这个问题 添加视图文件(.jsp) 这个没啥好解释的,刚才你让Spring...-- 视图名称后缀 --> class 指定ViewResolver的实现的类,
View是真正的进行视图渲染(对response里写东西),把结果返回给浏览器的 ViewResolver SpringMVC 用于处理视图最重要的两个接口是 ViewResolver 和 View...,ViewResolver 的主要作用是把一个逻辑上的视图名称解析为一个真正的视图(View )。...虽然2018年左右社区又启动了维护,但显然已经不能让Spring回头了 在Spring4.x版本中虽然没有删除掉Velocity的包,但也都标记为过时了~~~ 关于Apache的title技术,我今天刚打开官网...,它也是Spring MVC默认给装配的视图解析器。...之前执行 registry.viewResolver(viewResolver); } // 这是错误的注册方式~~~会让ViewResolverComposite可能失效
--logger 是 的子节点 来设置某一个包或者具体的某一个类的日志打印级别,以及指定 loger 仅有一个name属性,两个可选属性...level/addtivity name : 用来指定受此loger约束的某一个包或者具体的某一个类 level:用来设置打印级别,大小写无关--> <!...DEBUG,我们开发Spring MVC经常出现和参数类型相关的4XX错误,设置此项我们会看到更详细的错误信息。...} } Spring MVC的ViewResolver,这个是Spring MVC视图(JSP下就是html)渲染的核心机制;Spring MVC里有一个接口叫做ViewResolver(我们的ViewResolver...都实现该接口),实现这个接口要重写resolverViewName(),这个方法的返回值是接口View,而View的职责就是使用model、request、response对象,并将渲染的视图(不一定是
SSM 整合:案例 4.1 需求 4.2 环境搭建 4.3 导入配置类 4.3.1 MyBatis配置类 4.3.2 Spring配置类 4.3.3 Spring MVC配置类 4.3.4 启动配置类...afterCompletion 完成方法,视图渲染完成触发。 3.2 入门案例 3.3 多拦截器 执行流程 多拦截器拦截的顺序,就是在配置类中配置的顺序。 4....SSM 整合:案例 4.1 需求 用户的增删改查 SSM:spring mvc 、spring、mybatis view:jsp (非重点) 4.2 环境搭建 4.3 导入配置类 创建对应的目录结构.../后缀 jsp扩展名 viewResolver.setSuffix(".jsp"); return viewResolver; } } 4.3.4 启动配置类 package com.czxy.ssm.config...Id 等 步骤2:编写Mapper(UserMapper) 整合通用Mapper 步骤3:编写service 需要管理事务 步骤4:编写controller 处理请求路径 选择视图页面
前言 在经过 前两篇 文章了解了Spring MVC的内容协商机制之后,相信你已经能够熟练的运用Spring MVC提供的这项能力,配合RESTful发挥它的功效了。...视图解析器ViewResolver 关于视图的内容,可参见这里:View 关于视图解析器的内容,可参见这里:ViewResolver 本文简单的再“复习”一下Spring MVC对视图解析器的使用流程...为了使这个解析器正常工作,order序号需要设置成比其他的视图处理器高的优先级(默认就是最高的) // @since 3.0 public class ContentNegotiatingViewResolver...我们已经知道,默认情况下Spring MVC可没有使用此内容协商视图解析器,因此若有同一资源,多视图展示的需求,我们是需要手动配置(开启)支持的。...1、准备针对于处理这三种视图的ViewResolver实现类: // 自定义三个视图分别用于处理对应的视图需求 private final ViewResolver pdf_viewresolver
引言 Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。...通过这种方式,springboot是一个快速整合第三方框架的,简化了xml的配置,项目中再也不包含web.xml文件了,完全使用注解来完成操作的,并且内部自带tomcat启动。...的相关配置信息 需要创建一个springmvc相关配置类继承WebMvcConfigurationSupport ,这里只配置一个springmvc视图解析器。...@EnableWebMvc:开启注解的相关配置(配置视图解析器,以及)等等。 @ComponentScan:表示包扫描。...创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6.
基于请求文件名或接受头解析视图的ViewResolver的实现。ContentNegotiangViewResolver不解析视图本身,而是委托给其他视图解析器。...默认情况下,这些其他解析器是从应用程序上下文中自动获取的,尽管也可以使用ViewResolver属性显式设置它们。...需要注意的是,为了使此视图解析器正常工作,需要将order属性设置为比其他属性更高的优先级(默认值为Ordered.HIGHEST_PRECEDENCE)。...) 设置支持的响应类型 然后我们通过contentNegotiatingViewResolver方法自定义了一个内容协商器并注入到spring容器中,设置了ContentNegotiationManager...内容和上述一致: 发送参数和请求头模式的请求找不到合适的视图解析器直接走默认响应类型: 4.2.2查询参数模式 查询参数模式中默认的参数名是format,可以在设置启用参数查询模式的基础上设置自定义
# 注解配置SpringMVC 创建初始化类,代替web.xml 创建SpringConfig配置类,代替spring的配置文件 创建WebConfig配置类,代替SpringMVC的配置文件 测试功能...Spring提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成...Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer...的配置文件 @Configuration public class SpringConfig { //ssm整合之后,spring的配置信息写在此类中 } # 创建WebConfig配置类,代替SpringMVC...exceptionResolver.setExceptionMappings(prop); //设置共享异常信息的键 exceptionResolver.setExceptionAttribute
基于请求文件名或接受头解析视图的ViewResolver的实现。ContentNegotiangViewResolver不解析视图本身,而是委托给其他视图解析器。...默认情况下,这些其他解析器是从应用程序上下文中自动获取的,尽管也可以使用ViewResolver属性显式设置它们。...需要注意的是,为了使此视图解析器正常工作,需要将order属性设置为比其他属性更高的优先级(默认值为Ordered.HIGHEST_PRECEDENCE)。...3.1:工作原理 CNVR作为一个代理视图解析器,其接收到请求时候会委托给spring容器中配置的其他视图解析器处理并返回具体的视图,工作原理大致如下: ?...) 设置支持的响应类型 然后我们通过contentNegotiatingViewResolver方法自定义了一个内容协商器并注入到spring容器中,设置了ContentNegotiationManager
6.1 理解视图解析 Spring MVC定义了一个名为ViewResolver的接口,它大致如下所示: public interface ViewResolver { View resolveViewName...尽管我们可以编写ViewResolver和View的实现,在有些特定的场景下,这样做也是有必要的,但一般来讲,我们并不需要关心这些接口。Spring提供了多个内置的实现。...@Bean public ViewResolver viewResolver(){ // 配置jsp视图解析器 InternalResourceViewResolver resolver =...public ViewResolver viewResolver(){ // 配置jsp视图解析器 InternalResourceViewResolver resolver = new...同样需要注意的是,我们将element属性设置成了div。默认情况下,错误都会渲染在HTML 标签中,如果只显示一个错误的话,这是不错的选择。
void initServletContext(ServletContext servletContext) { //调用Spring的BeanFactoryUtils扫描容器里的所有视图解析器ViewResolver...,自动配置了ViewResolver(视图解析器作用,根据方法返回值得到视图对象view) 往下翻代码,可以看到resolveViewName方法,里面代码是从this.viewResolvers获取候选的视图解析器...遍历所有的视图解析器对象,从视图解析器里获取候选的视图,封装成list保存 ? ok,跟了源码就是只要将视图解析器丢到Spring容器里,就可以加载到 写个简单的视图解析类 ?...WebMvcProperties配置文件定义的一个异常枚举值 ? ? 格式为如图所示,定了了错误代码是生成规则: ? 6、首页支持 ?...7、网站logo设置 ? Springboot1.
♞ 视图(View):提供模型的展示,管理模型如何显示给用户,它是应用程序的外观。 ♞ 控制器(Controller):对用户的输入做出反应,管理用户和视图的交互,是连接模型和视图的枢纽。...HandleAdpater 执行 Handle ViewResolver 将结果处理成 View Handle 【自己写的controller层】 业务逻辑 View 【JSP、HTML】 渲染...拿到 视图名称 后,将其交给 ViewResolver(视图解析器) ♞ ViewResolver 拿到 视图名称 查找是否有匹配的资源 ♞ 有则将 视图 返回给 DispatcherServlet...如果该元素的值为负数或者没有设置,则容器会当 servlet 被请求时再加载 如果值为正整数或者 0 时,表示容器在应用启动时就加载并初始化这个 servlet 值越小,servlet 的优先级越高...☞ 启动项目 启动项目之后,请求 Tomcat 中配置好的 URL + @RequestMapping 上配置好的请求路径就可以请求到对应的方法。 ?
前言 为了更好的去理解Spring MVC的工作机制,这边博文我们主要讲述Spring MVC在初始化的时候(容器启动的时候),做的一些准备工作。...比如URL和Controller的绑定,以及URL和方法method的绑定,拦截器的初始化,视图解析器的初始化等Spring MVC web9大组件的初始化 在上篇博文: 【小家Spring】Spring...容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析) 从源码层面,我已经很清楚的了解到了父容器以及Spring MVC子容器的一个初始化的过程...,可通过Spring MVC框架提供的主题(theme)设置应用的整体样式风格,提高用户体验。...这其实是ViewResolver主要要做的工作 ViewResolver需要找到渲染所用的模板和所用的技术(也就是视图的类型)进行渲染,具体的渲染过程则交由不同的视图自己完成。
源码分析 DispatcherServlet执行流程及相关源码分析 在前一篇文章SpringMVC 启动流程及相关源码分析中,详细探讨了Spring MVC在Web容器中部署后的启动过程,以及相关源码分析...首先,让我们站在Spring MVC的四大组件:DispatcherServlet、HandlerMapping、HandlerAdapter以及ViewResolver的角度来看一下Spring MVC...8、DispatcherServlet类遍历所有配置的ViewResolver类请求进行视图解析。 9、ViewResolver类进行视图解析并获取View对象。...10、ViewResolver类向前端控制器返回上一步骤的View对象。 11、DispatcherServlet类进行视图View的渲染,填充Model。...ViewResolver类根据视图名称来解析对应的视图View,如果找到则返回对应视图View,没有找到则返回null。
Spring MVC各组件近距离接触--下--04 引言 ModelAndView ModelAndView中的视图信息 ModelAndview 中的模型数据 视图定位器ViewResolver AbstractCachingViewResolver...ViewResolver 实现类 为了便于理解,我们可以将Spring MVC提供的ViewResolver划分为两类,一类称为“面向单一视图类型的ViewResolver,另一类则称为面向多视图类型的...ResourceBundleViewResolver按照Spring IoC容器 所接受的properties配置格式配置逻辑视图名与具体视图之间的映射关系,而XmlViewResolver则是按照Spring...Spring MVC的Web应用程序只能使用一个ViewResolver。...ViewResolver的优先级的指定使用Ordered接口作为标准,这已经成为Spring框架内设定优先级方式的惯例了。
attributesSnapshot.put(attrName, request.getAttribute(attrName)); } } } // 设置一些...request的值,使框架对象对处理程序和视图对象可用 request.setAttribute(WEB_APPLICATION_CONTEXT_ATTRIBUTE, getWebApplicationContext...2.2 Spring MVC视图解析机制 首先定义一个ViewResolver类型的List /** List of ViewResolvers used by this servlet. */ @Nullable...= null) { // 如果异常不为空,则返回一个错误的页面 if (exception instanceof ModelAndViewDefiningException) {...mv, HttpServletRequest request, HttpServletResponse response) throws Exception { // 确定请求的区域设置并将其应用于响应
第一:spring-servlet.xml 定义了view-resolver 来转到真是的视图, 通过component-scanning(组件扫描)来定位bean。...一般来说,容器已经包含了这些库,你可以在pom.xml文件中设置它们的scope为provided 。 另外, maven-compiler-plugin已经在这里明确指定了jdk的版本。...中设置 或者获取属性的方式。...留意一下这些方法的返回值。这些值将是view resolver 的前缀或者后缀,来产生视图文件的真是名称。...在servlet 3.0容器启动时,该类将被加载和实例化,其onStartup方法将被servlet容器调用。
5.ViewResolver 视图解析器明确了视图名与视图对象的关系,是调用demo.jsp还是调用demo.html,以及明确视图的位置 五大组件的关系 五大组件的位置关系 DispatcherServlet...属于servlet所以位于Tomcat等服务器容器中,而、HandleMapping ViewResolver 属于Spring所以位于SpringMVC配置文件中,Contrlloer以及ModeView...init-param为该Servlet启动所需参数。...DispatcherServlet会读取初始化contextConfigLocation参数里面的值从而获取spring的配置位置,然后自启动容器 <!...ViewResolver 前缀+视图名+后缀=映射到页面 <!
领取专属 10元无门槛券
手把手带您无忧上云