
Spring
啄食菜鸡
这个作者很懒,什么都没留下…
展开
-
跨重定向请求传递数据
在处理完POST请求后,通常来讲一个最佳实践就是执行一下重定向。除了其他的一些因素外,这样做能够防止用户点击浏览器的刷新按钮或后退箭头时,客户端重新执行危险的POST请求。当控制器方法返回的String值以"redirect:"开头的话,那么这个String不是用来查找视图的,而是用来指导浏览器进行重定向的路径。一般来讲,当一个处理器方法完成之后,该方法所指定的模型数据将会复制到请求中,并作为...原创 2020-04-20 23:56:54 · 226 阅读 · 0 评论 -
为所有控制器处理异常——@ControllerAdvice
控制器通知(controller advice)是任意带有@ControllerAdvice注解的类,这个类会包含一个或多个如下类型的方法:@ExceptionHandler注解标注的方法;@InitBinder注解标注的方法;@ModelAttribute注解标注的方法;在带有@ControllerAdvice注解的类中,以上所述的这些方法会运用到整个应用程序所有控制器中带有@Req...原创 2020-04-20 23:11:29 · 279 阅读 · 0 评论 -
文件上传——处理MultiPart形式的数据
1、配置multipart解析器(注入实现类)DispatcherServlet并没有实现任何解析multipart请求数据的功能。它将任务委托给Spring中MultipartResolver策略接口的实现,通过这个实现类来解析multipart请求中的内容。Spring内置了两个MultipartResolver的实现供我们选择:CommonsMultipartResolverSta...原创 2020-04-20 22:53:57 · 643 阅读 · 0 评论 -
SpringMVC请求流程
1、所有请求都会通过一个前端控制器,SpringMVC中DispatcherServlet就是前端控制器(前端控制器是常用的Web应用程序模式,在这里单实例的Servlet将请求委托给应用程序的其他组件来执行实际的处理);2、前端控制器查询处理器映射,确定发送请求的目标控制器(DispatcherServlet负责将请求发送给控制器controller,但控制器有多个,所以查询处理器映射[根据请...原创 2020-04-20 22:29:38 · 630 阅读 · 0 评论 -
注入AspectJ切面
如果在执行通知时,切面依赖一个或多个类,我们可以在切面内部实例化这些协作的对象。但更好的方式是,借助Spring的依赖注入把bean装配到AspectJ期末中。通常情况下,Spring bean由Spring容器初始化,但是Aspect切面是由AspectJ在运行期创建的。等到Spring有机会为Aspect注入bean时,Aspect已经被实例化了。因为Spring不能负责创建Aspect,...原创 2020-04-20 22:03:13 · 641 阅读 · 0 评论 -
切面编程——通过注解引入新功能
一般在使用切面时,所包装的都是被通知对象的已有方法。但是方法包装仅仅是切面所实现的功能之一。如何通过编写切面,为被通知的对象引入全新的功能呢?在Spring中,切面只是实现了他们所包装bean相同接口的代理。如果除了实现这些接口,代理也能暴露新接口的话,切面所通知的bean看起来像是实现了新的接口。当引入的接口方法被调用时,代理会把此调用委托给实现了新接口的某个其他对象。实际上,一个bean...原创 2020-04-20 20:43:50 · 204 阅读 · 0 评论 -
Spring中如何将会话或请求作用域的bean注入单例bean
Spring中的单例bean,会在应用上下文加载的时候创建。如果单例bean中的属性需要注入会话作用域的bean时,此时并不存在会话作用域的bean。直到接收到某个请求创建会话之后才会创建。此时需要使用@Scope注解的proxyMode属性。@Bean@Scope(value=WebApplicationContext.SCOPE_SESSION, proxyMode=Scopeed...原创 2020-04-19 17:14:01 · 335 阅读 · 0 评论