springmvc注解

springmvc源码学习

萝らか妹 提交于 2019-12-15 17:39:23
1.springmvc运行流程 流程图是直接在百度图片中找的一张 >.前台发送请求,请求会首先通过DispatcherServlet进行url的匹配;如果匹配不到,看是否配置<mvc:default-servlet-hanler> 如果配置了,就找对应的目标资源 >.如果匹配到url,就调用HandlerMapping,获取到handlerExecutionChain >.dispatcherServlet会调用handlerAdapter >.handlerAdapter调用对应的handler,也就是controller方法。 >.调用完成之后,返回modelAndView >.视图解析器会解析出对应的view,并进行视图的渲染 2.springMVC的核心类和接口 前端控制器 DispatcherServlet 处理器映射器 HandlerMapping 处理器适配器 HandlerAdapter 视图解析器 viewResolver ModelAndView 3.springmvc的controller有三种配置方式 1.@Controller注解 2.实现Controller接口,这种方式,需要在类名增加@Component("/映射地址") 3.实现HttpRequestHandler接口,在类上加@Component("/映射地址") 后面两种原理是一样的,下面会说到

SpringMVC框架(1)--基础入门

给你一囗甜甜゛ 提交于 2019-12-14 15:13:59
Spring框架可优化的部分: 因为应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。所以在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。只加载一次配置文件就可以了,也可以将Spring与Web环境集成。 怎么使用Spring提供的工具获取应用上下文? Spring提供了一个监听器ContextLoaderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。 使用步骤: 1.导入坐标 <dependency> <groupId>org

SpringMVC面试问题汇总,你想知道的都在这

醉酒当歌 提交于 2019-12-13 18:40:51
1、什么是Spring MVC ?简单介绍下你对springMVC的理解? 1、SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、SpringMVC是Spring的一个模块,是Spring的子容器,子容器可以拿父容器的东西,但是父容器不能拿子容器的东西。 2、SpringMVC的流程? (1)用户发送请求至前端控制器DispatcherServlet; (2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle; (3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet; (4)DispatcherServlet 调用 HandlerAdapter处理器适配器; (5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器); (6)Handler执行完成返回ModelAndView; (7

SpringMVC请求参数接收总结

若如初见. 提交于 2019-12-13 18:12:03
在日常使用 SpringMVC 进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结。 SpringMVC 中处理控制器参数的接口是 HandlerMethodArgumentResolver ,此接口有众多子类,分别处理不同(注解类型)的参数,下面只列举几个子类: RequestParamMethodArgumentResolver :解析处理使用了 @RequestParam 注解的参数、 MultipartFile 类型参数和 Simple 类型(如 long 、 int 等类型)参数。 RequestResponseBodyMethodProcessor :解析处理 @RequestBody 注解的参数。 PathVariableMapMethodArgumentResolver :解析处理 @PathVariable 注解的参数。 实际上,一般在解析一个控制器的请求参数的时候,用到的是 HandlerMethodArgumentResolverComposite ,里面装载了所有启用的 HandlerMethodArgumentResolver 子类。而 HandlerMethodArgumentResolver 子类在解析参数的时候使用到 HttpMessageConverter (实际上也是一个列表,进行遍历匹配解析)子类进行匹配解析,常见的如

springboot+swagger企业开发实战(10年java老鸟经验)

孤街浪徒 提交于 2019-12-13 00:19:34
一句话概括:对于产品开发,特别是前后端分离的开发模式,接口文档是连接前后端的枢纽,本文对springboot+swagger在企业的实践进行详细描述。 1.引言 在软件开发过程中,接口设计与接口文档编写是重要的一环,特别是在前后端分离的情况下,接口说明文档是开发人员之间的连接点。接口文档的编写有很多方式,可以使用word,也可以使用编写工具如小幺鸡,这些基本属于脱离代码编写的文档,如果接口变化,需要额外修改文档,增加工作量。如何提高写接口文档效率,在springboot开发中,结合swagger来提供接口文档说明是一个很好的实践,通过配置与注解,在编写接口代码过程中,同时也把接口文档写好,接口需要变更时,文档也同时变更,具有工作量少,效率高,接口文档直观简洁,可实时调用验证等好处。本文基本springboot2+swagger2,结合在企业中的实践,对接口文档的编写进行详细说明,具体有如下内容: swagger介绍及文档生成说明 使用springboot2+swagger2构建示例工程及配置描述 使用注解添加文档内容说明 使用全局参数进行接口认证 如需看源码,本文示例工程地址: https://github.com/mianshenglee/my-example 2.swagger简介 2.1 swagger 介绍 swagger官网地址: https://swagger.io

SpringMVC 之 上传文件

只愿长相守 提交于 2019-12-13 00:05:43
  一、需求:   利用SpringMVC实现上传文件的功能   二、思路:   1.我们可以在SpringMVC中,通过配置一个MultipartResolver来上传文件。   2.通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。   三、参考   1.SpringMVC学习:https://how2j.cn/k/springmvc/springmvc-springmvc/615.html?p=36286   四、步骤   1.添加pom文件   commons-fileupload   commons-fileupload   1.3.1   commons-io   commons-io   2.3   2.JSP页面   上传页面,需要在src/main/resources/views下面新建一个upload.jsp文件   3.跳转页面   添加能跳转到upload页面的ViewController。需要在MyMvcConfig.java下面添加。   // 添加转向upload页面的ViewController   public void addViewControllers(ViewControllerRegistry registry) {   registry.addViewController

day01-springboot

限于喜欢 提交于 2019-12-12 08:22:39
0.学习目标 了解SpringBoot的作用 掌握java配置的方式 了解SpringBoot自动配置原理 掌握SpringBoot的基本使用 了解Thymeleaf的基本使用 1. 了解SpringBoot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBoot SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 我们可以看到下面的一段介绍: Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible. 翻译一下: 用一些固定的方式来构建生产级别的spring应用。Spring Boot 推崇约定大于配置的方式以便于你能够尽可能快速的启动并运行程序。 其实人们把Spring Boot 称为搭建程序的 脚手架 。其最主要作用就是帮我们快速的构建庞大的spring项目

【大厂面试真题350道】性能优化+微服务+并发编程+开源框架+分布式

两盒软妹~` 提交于 2019-12-11 08:28:37
一,性能优化专题: 1.tomcat性能调优 怎么给tomcat调优 如何加大comcat连接数 怎么加大tomcat的内存 tomcat中如何禁止列目录下的文件 Tomcat有几种部署方式 tomcat的优化经验 2.jvm性能优化专题: Java类加载过程 java内存分配 描述一下jvm加载class文件的原理机制 GC是什么?为什么要有GC? 简述java垃圾回收机制 如何判断一个对象是否存活?(或者GC对象的判定方法) 垃圾回收的优点和原理。并考虑2种回收机制。 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗? 有什么办法主动通知虚拟机进行垃圾回收? java中会存在内存泄漏吗,请简单描述。 深拷贝和浅拷贝 syatem,gc**() 和runtime,gc ()**会做做什么事情? finalize方法什么时候被调用?析构函数(finalizatinon)的目的是什么? 如何对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的? 串行(serial)收集器和吞吐量(throughout)收集器的区别是什么? 在Java中,对象什么时候可以被垃圾回收? 简述Java内存分配与回收策率以及minor GC和majorGC。 jvm的永久代中会发生垃圾回收吗? Java中垃圾收集的方法有哪些?

Maven下springmvc配置Redis

微笑、不失礼 提交于 2019-12-10 11:08:27
在完好的springmvc项目中导入 pom.xml < build > < plugins > < plugin > < groupId > org.apache.maven.plugins < /groupId > < artifactId > maven-compiler-plugin < /artifactId > < configuration > < source > 1.7 < /source > < target > 1.7 < /target > < /configuration > < /plugin > < /plugins > < /build > < dependencies > < dependency > < groupId > org.springframework < /groupId > < artifactId > spring-webmvc < /artifactId > < version > 5.0.6.RELEASE < /version > < /dependency > < dependency > < groupId > javax.servlet < /groupId > < artifactId > javax.servlet-api < /artifactId > < version > 4.0.1 < /version >

springmvc(3)controller配置汇总

纵然是瞬间 提交于 2019-12-10 02:14:44
1.通过url对应bean(通过ur直接找到对应的name或id的bean,此时url即为bean的name或id) <!--配置handlerMapping--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean id="/hello.do" class="com.app.controller.HelloController"/> 以上配置,访问hello.do就会寻找ID为/hello.do的bean,此方式只适合小型的应用。 2.为url分配bean(通过url找到对应的beanName,再通过beanName找到对应的bean) <!--配置handlerMapping--> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!--key对应url请求名 value对应处理器的id--> <prop key="/hello.do">helloController</prop> </props> </property> </bean> <bean id=