
Spring应用
spring应用经验
诗人不写诗
当你足够努力时,全世界都会给你让路
展开
-
函数使用返回还是异常的思考
日常设计函数的时候,我们肯定会遇到函数是否抛出异常的情况,这里指的是业务自主产生的异常。1、函数有返回值,是否要抛出异常2、函数没有返回值,是否需要抛出异常3、函数需要返回错误信息的提示,是否要抛出异常...原创 2021-11-04 20:21:53 · 595 阅读 · 0 评论 -
Spring之RestTemplate使用
RestTemplate位于:org.springframework.web.client.RestTemplatespring-web他是Spring web模块提供的一个发送http请求的工具。在使用了Spring的应用中,使用这个工具是非常普遍的,使用的细节和特性是需要了解的。一、设计思想1、RestTempldate作为暴露给用户的使用类2、RestTemplate继承抽象类org.springframework.http.client.support.InterceptingHtt原创 2021-10-24 15:35:14 · 1229 阅读 · 1 评论 -
SpringMVC全注解开发
现在多流行SpringMVC的全注解开发很少见,一般企业了都是使用半xml半注解的开发方式,但是SpringMVC是支持全注解开发的,很多老程序员不愿尝试新技术方案,只愿意复制粘贴老项目代码,所以导致新技术方案推广异常缓慢,SpringMVC很早就可以使用全注解方式开发了。在SpringMVC中,肯定是没有内置容器的,所以一定还是要有一个WEB-INF目录的,里面会有至少web.xml配置文件。...原创 2021-04-23 08:54:04 · 357 阅读 · 0 评论 -
Spring MVC之WebMvcConfigurerAdapter
WebMvcConfigurerAdapter的出现是为了替代xml出现的,在这个类型里可以配置拦截器相关配置,这个类的使用是弱化繁杂xml配置的一个缩影,Adapter中文译作适配器,转换器,意思就是作为xml配置的一种适配,一种取代。我们使用的方式就是继承,@Componentpublic class WebMvcConf extends WebMvcConfigurerAdapter...原创 2018-11-02 14:24:39 · 1043 阅读 · 0 评论 -
RestTemplate发送添加Header和Body
使用RestTempalate发送HTTP请求时,会有发送自定义Header和Body的需求,有一点错误就发送不出去,这里直接给出答案:String token = easeToken.getAccess_token();HttpHeaders headers = new HttpHeaders();headers.add("Authorization", "Bearer " + tok...原创 2019-10-27 17:40:52 · 12338 阅读 · 2 评论 -
SpringMVC的Controller的注解@Controller和@RestController
SpringMVC框架是支持前后端结合和前后端分离的,所以你会在框架中看到这两种方式的实现,如果不全面了解SpringMVC的提供的功能,看起源码会很困惑。使用@Controller注解的时候,就意味着你要使用前后端结合的方式来开发了,这个时候Controller里面的方法返回值有3种:1、字符串,代表视图名称2、ModelAndView,需要渲染数据的视图3、void,通过Htt...原创 2019-10-21 07:40:18 · 436 阅读 · 0 评论 -
spring统一异常处理
1@ControllerAdvice原创 2019-07-13 21:36:53 · 138 阅读 · 0 评论 -
SpringMVC之mvc:annotation-driven和@EnableWebMvc
在SpringMVC中,往往xml配置最后都能被注解替代,在配置Controller接受请求时,使用xml配置的方式是添加<mvc:annotation-driven/>这个配置会自动注册三个类RequestMappingHandlerMappingRequestMappingHandlerAdapterExceptionHandlerExceptionResolver以支...原创 2019-05-01 12:00:15 · 1834 阅读 · 0 评论 -
SpringMVC中@RequestBody和@RequestParam和@ModelAttribute
这些类型和HTTP的content-type属性有关系,form-data和x-www-form-urlencoded是没有请求体的,所以当你的content-type类型属于这两种中的一个时,如果后端使用了@RequestBody,你是接收不到参数,甚至会抛出转换异常的。当你的content-type是application/json类型时,你是可以添加请求体的,也就是json参数,这个时候你使...原创 2019-05-03 14:57:08 · 612 阅读 · 0 评论 -
SpringMVC之HandlerInterceptor
在SpringMVC中使用拦截器的方式很简单,只需实现HandlerInterceptor接口即可,其中的原理是DispatcherServlet#doDispatcher()方法中会搜索配置的所有HandlerExecutionChain,然后调用。如果在SpringMVC中使用,需要在xml配置文件中配置,如果在SpringBoot中使用,可以使用@Configuration注解类型并提供相应...原创 2019-04-06 16:10:31 · 165 阅读 · 0 评论 -
SpringMVC之Controller的RequestMapping方法参数原理
SpringMVC中Controller里方法的入参解析工作是我们有必要了解的一个环节,特别是入参是Servlet API相关的类型时,我们需要把整个流程串起来,才能了解更加透彻。我们先把宏观流程说清楚,再来看细节,请求都是由DispatcherServlet统一分发的,DispatcherServlet先调用HandlerMapping的getHandler方法获取到HandlerExecuti...原创 2019-01-16 13:27:06 · 440 阅读 · 0 评论 -
SpringMVC的Controller中注入Servlet
我们知道Servlet使用方式是单实例多线程的,Controller在不使用@Scope("prototype")注解时也是单实例的,下面的使用方式:@Controllerpublic class BlogController { @Autowired private HttpServletRequest request;}初看之下,因为BlogController中有Servl...原创 2019-01-11 18:41:08 · 1782 阅读 · 0 评论 -
SpringMVC的DispatcherServlet初始化流程
对于SpringMVC启动流程,我们首先要从大方向上把握,那就是他也是处在Java EE容器中的组件,所以必须会和Java EE的规范流程有一定关系,具体说来就是容器会先后初始化Listener,Filter,Servlet,所以我们可以看到web.xml中配置了Spring的启动入口ContextLoaderListener,public class ContextLoaderListe...原创 2019-01-11 18:41:14 · 1238 阅读 · 0 评论 -
Spring之@ControllerAdvice
在早期的时候,我们写Controller都会自定义一个BaseController,在BaseController中处理公共代码,包括异常处理等,Spring也为这种场景做了解决方案,就是使用@ControllerAdvice和@ExceptionHandler,使用方式如下:@ControllerAdvicepublic class ErrorHandler { private st...原创 2018-11-08 13:46:26 · 180 阅读 · 0 评论 -
SpringMVC之Controller映射
这里讲讲SpringMVC如何处理Controller的相关知识点,本文基于Spring4.x源码分析,直接从request映射到Controller中方法切入,前后内容不做解释,先有必要说明几个类型,我们可以猜想,映射关系的数据结构很可能是一个Map,那么key和value就是我们关心的,RequestMappingInfo:Map的value,结构中主要包含请求协议相关情况,如请求类型,参...原创 2018-11-13 18:45:18 · 623 阅读 · 0 评论