Spring(十二):缓存注解 @Cacheable, @CachePut, @CacheEvit 使用详解
Spring 抽象出了统一的缓存接口来支持不同的缓存技术,提供了易于使用的缓存注解来操作缓存数据。
在Spring Boot 项目中能使用注解则用注解,XML配置文件的方式是最后之选。
Spring 抽象出了统一的缓存接口来支持不同的缓存技术,提供了易于使用的缓存注解来操作缓存数据。
在Spring Boot 项目中能使用注解则用注解,XML配置文件的方式是最后之选。
Docker 的构想是要实现Build,ship and Run Any App, Anywhere,即通过对应用的封装(Packaging)、分发(Distribution),部署(Deployment),运行(Runtime)生命周期进行管理,达到应用组件 一次封装,到处运行 的目的。
这里的应用组件,可以是一个Web应用,一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。
CentOS 7.x 相关配置及问题解决汇总。
Spring 中的默认为所有申明为 Bean 的对象创建一个实例存放到IoC容器进行管理的,这些Bean对象对于多线程来说是共享的,所以严格来说 Spring Bean 是非线程安全的。Spring 本身就没有对 bean 的多线程安全问题做出任何保证与措施。
Servlet 3.0+ 异步方法实现服务端消息推送是通过使用定时任务,定时的让控制器从另外一个线程返回一个DeferedResult并推送给客户端。而更新DeferedResult是在使用@Scheduled定时任务注解的方法里执行的。
Web 项目中,浏览器与服务器是通过请求和响应来实现功能功能交互的,当服务端出现新的信息需要让前端知道时,就需要用到服务器推送技术。
服务端推送技术有基于SSE(Server Send Event 服务端发送事件)的服务器端推送,该方式需要浏览器支持,而目前主流浏览器最近版本基本都支持;基于Servlet 3.0+的异步方法特性;WebSocket双向通信技术。
通常会在 @Controller 注解作用的类的方法上使用@ExceptionHandler,@ModelAttribute,@InitBinder来处理异常或初始化绑定,这三个注解对所用使用了 @RequestMapping 注解的控制器内的方法有效。
如果希望此类方法在全局范围内(跨控制器)应用,则可以在带有 @ControllerAdvice 或 @RestControllerAdvice 注解的类中声明它们这三个注解。
@ControllerAdvice用于声明一个 控制器 建言,作用在类上,可以将控制器的全局配置统一放置在该注解作用的类里,结合在方法上使用 @ExceptionHandler 注解,就能实现全局的异常控制。
Maven 管理的项目,在src/main/resources下新建logback.xml文件。
Log4j2配置:log4j2.xml文件示例配置; Log4j2 官方文档