Spring(十一):Spring Bean 是线程安全的吗?

Spring 中的默认为所有申明为 Bean 的对象创建一个实例存放到IoC容器进行管理的,这些Bean对象对于多线程来说是共享的,所以严格来说 Spring Bean 是非线程安全的。Spring 本身就没有对 bean 的多线程安全问题做出任何保证与措施。   

阅读更多

Spring MVC SSE-服务端推送技术

  Web 项目中,浏览器与服务器是通过请求响应来实现功能功能交互的,当服务端出现新的信息需要让前端知道时,就需要用到服务器推送技术。

  服务端推送技术有基于SSE(Server Send Event 服务端发送事件)的服务器端推送,该方式需要浏览器支持,而目前主流浏览器最近版本基本都支持;基于Servlet 3.0+的异步方法特性;WebSocket双向通信技术。

阅读更多

Spring MVC 注解之 @ControllerAdvice 实现全局异常处理

通常会在 @Controller 注解作用的类的方法上使用@ExceptionHandler,@ModelAttribute,@InitBinder来处理异常或初始化绑定,这三个注解对所用使用了 @RequestMapping 注解的控制器内的方法有效。

如果希望此类方法在全局范围内(跨控制器)应用,则可以在带有 @ControllerAdvice@RestControllerAdvice 注解的类中声明它们这三个注解。

@ControllerAdvice用于声明一个 控制器 建言,作用在类上,可以将控制器的全局配置统一放置在该注解作用的类里,结合在方法上使用 @ExceptionHandler 注解,就能实现全局的异常控制。

阅读更多

Spring(十):Bean Scopes(作用范围)

  使用 Spring 框架,在定义 Bean 时,通常不指定其作用范围而使用默认的配置,可能会对 Spring Bean 的作用范围不甚了解。Spring 给 Bean 定义的作用范围提供了灵活的配置,开箱即用,Spring Framework 支持 六个作用范围,其中四个范围只有在使用支持 Web 的 ApplicationContext时才能使用,还提供了自定义作用范围。

  查看了下 Spring 5.0.9 Release 版本关于 Spring Bean scopes章节内容,在此做个记录,至于是否和其它版本有区别暂未对比。  

阅读更多

Spring(九):Bean 的生命周期

  Spring Bean的生命周期由多个特定的生命队段组成,可以从两个层面来定义Bean的生命周期。第一层是Bean的作用范围;第二层是实例化Bean所经历的一系列阶段。

阅读更多