Spring文档学习
文章平均质量分 80
hello_world_001
IT菜鸟
展开
-
Spring Ioc 容器扩展点1. BeanPostProcessor
BeanPostProcessor定义了回调方法,通过实现这个方法,开发者可以提供自定义(或者重写容器默认)的实例化逻辑依赖分析逻辑等等,如果想在Spring容器完成实例化,配置和初始化bean之后实例化某些自定义逻辑,那么开发者可以插入一个或多个BeanPostProcessor实现,并且可以通过实现设置order属性来控制这些实现的执行顺序(前提是顺带实现Ordered接口才可以使用order...翻译 2018-03-30 10:06:42 · 202 阅读 · 0 评论 -
Spring Formatter<T> 对Spring MVC接受的参数格式化
Formatter和Converter一样,也是将一种类型转换成另一种类型。但是,Formatter的源类型必须是一个String。在使用时,必须编写一个实现org.springframework.format.Formatter接口的java类。这个接口的声明如下注意点就是:此Formatter的应用场景多在Spring MVC中接受String的值将其转化为相应的Java对象public in...翻译 2018-04-11 13:50:27 · 506 阅读 · 0 评论 -
Spring 3 对JSR-303/JSR-349的验证支持
Sring 3 完全支持JSR-303 Bean的验证API,当编程使用验证时,Spring的DataBinder可以验证对象并绑定他们,最后Spring MVC现在支持在@COntroller中输入验证内容。例子:1.编写VO对象并设置验证规则package com.test.entity.vo;import lombok.Data;import javax.validation.cons...翻译 2018-04-11 16:17:00 · 1323 阅读 · 0 评论 -
spring Ioc 对象注入 注解
@Service 用于注解服务@Component 用于注解元数据@Controller 用来注解controller@Repository 用来注解持久层 同时其能自动转换异常元注解:一种可用于别的注解之上的注解,例如@Service注解是使用@Component元注解的 @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNT...翻译 2018-04-04 19:32:13 · 266 阅读 · 0 评论 -
Spring @ControllerAdvice与@RestControllerAdvice注解
@ControllerAdvice是组件注解,他使得其实现类能够被classpath扫描自动发现,如果应用是通过MVC命令空间或MVC Java编程方式配置,那么该特性默认是自动开启的。注解@ControllerAdvice的类可以拥有@ExceptionHandler, @InitBinder或 @ModelAttribute注解的方法,并且这些方法会被应用到控制器类层次的所有@RequestM...原创 2018-04-12 10:00:50 · 30127 阅读 · 0 评论 -
Spring mvc 异步调用 Callable DeferredResult
Spring MVC 3.2开始引入了基于Servlet3的异步请求处理,相比以前,控制器方法已经不一定需要一个值,而是可以直接返回一个Callable对象,并通过Spring MVC所管理的线程来产生返回值,与此同时,Servlet容器的主线程则可以退出并释放其资源,同时也允许容器去处理其它请求。通过一个TaskExecutor,Spring MVC可以在另外的线程中调用Callable。当Ca...翻译 2018-04-12 11:01:33 · 1287 阅读 · 0 评论 -
Spring Http流 (服务端推送技术)
*/@RestControllerpublic class TestController { /** * HTTP 流 用于在Http相应中同时推送多个事件 * 该对象可以被用于发送多个对象, * 通常我们使用到的@ResponseBody只能返回一个对象 * 访问http://127.0.0.1:8886/get6 客户端等待, ...翻译 2018-04-12 11:32:05 · 1861 阅读 · 0 评论 -
Spring mvc 之WebMvcConfigurerAdapter 对mvc的自定义
@Configuration//启用配置@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { /** * 注册自定义格式化程序和转换器 * 详细见Formatter * * @param registry */ @Override ...翻译 2018-04-13 13:41:06 · 566 阅读 · 0 评论 -
Spring mvc 之 AbstractHttpMessageConverter 自定义Http消息转化器
场景:获取网络数据时,发现如下错误{ "timestamp": "2018-04-13T05:43:23.256+0000", "status": 500, "error": "Internal Server Error", "exception": "feign.codec.DecodeException", "message"原创 2018-04-13 14:20:12 · 7123 阅读 · 0 评论 -
Spring 事务管理 4种隔离级别
数据库事务的隔离级别有如下几种public enum Isolation { DEFAULT(-1), READ_UNCOMMITTED(1), READ_COMMITTED(2), REPEATABLE_READ(4), SERIALIZABLE(8); private final int value; private Isolatio...原创 2018-04-16 18:00:34 · 1417 阅读 · 0 评论 -
Spring 事务管理 事务的传播级别
例子:对于默认的传播级别 REQUIRED 的测试首先对于 REQUIRED 的解释如下: 默认事务类型,如果没有,就新建一个事务;如果有,就加入当前事务,也就是大家都使用同一个事务模型,只要有一个发生了异常,那么整个事务都会回滚。其中对于发生异常导致事务回滚需要注重理解,否则对于REQUIRES_NEW 就会认为某些行为与预先的不一样。下面针对 REQUIRES_NEW 的测试如下:@Serv...原创 2018-04-16 17:35:13 · 3313 阅读 · 0 评论 -
Spring Ioc 容器扩展点2 BeanFactoryPostProcessor自定义元数据配置
这个接口的语义与BeanPostProcessor类似,但有一处不同,BeanFactoryPostProcessor操作bean的元数据配置,也就是说,Spring IOC容器允许BeanFactoryPostProcessor来读取元数据配置并在容器实例化任何bean(除了BeanFactoryPostProcessor)之前修改他。开发者可以配置多个BeanFactoryPostProces...翻译 2018-03-30 12:23:15 · 352 阅读 · 0 评论 -
Spring Ioc 容器扩展点3 使用FactoryBean自定义初始化逻辑
为自己工厂的对象实现FactoryBean接口FactoryBean接口就是Spring IOC容器实例化逻辑的可插拔点,如果你的初始化代码非常复杂,那么相对于潜在的大量详细的XML而言,最好是使用Java语言来表达,你可以创建自定义的FactoryBean,在该类中编写复杂的初始化代码,然后将自定义的FactoryBean插入到容器中,FactoryBean接口提供下面三个方法:1.Object...翻译 2018-03-30 14:22:51 · 529 阅读 · 0 评论 -
Spring Ioc 基于Java的容器配置
@Bean和@Configuration注解Spring中基于Java配置的核心内容是@Configuration注解的类和@Bean注解的方法@Bean注解用于表名方法的实例化,配置和初始化都是由Spring Ioc容器管理的新对象,就像在XML配置的元素一样,开发者可以在任意的Spring @Component中使用@Bean注解方法,但是大多数情况下@Bean是配合@Configuratio...翻译 2018-04-07 14:36:10 · 242 阅读 · 0 评论 -
Spring 事件通知
Spring事件通知1.编写自定义的事件载体对象/** * @Author:qmfang * @Description: 继承自事件对象,表明将其作为一个事件通知对象 * @Date:Created in 10:35 2018/4/8 * @Modified By: */@Datapublic class BlackListEvent extends ApplicationEvent...翻译 2018-04-08 11:20:44 · 602 阅读 · 0 评论 -
Spring 数据校验
1.定义需要校验的类@Datapublic class Person { private String name; private int age;}2.编写校验器@Componentpublic class PersonValidator implements Validator { @Override public boolean supports(...翻译 2018-04-10 12:47:30 · 196 阅读 · 0 评论 -
Spring BeanWrapper
BeanWrapper 提供了设置和获取属性值(批量或单独)获取属性描述符以及查询属性以确定他们是可读还是可写的功能。1.定义测试bean@Datapublic class Company { private String name; private Person person;}@Datapublic class Person { private String...翻译 2018-04-10 13:39:12 · 142 阅读 · 0 评论 -
Spring PropertyEditor自定义属性编辑器
Spring 使用PropertyEditors的接口来实现对象和字符串之间的转换,比如将 2007-14-09转化为日期类型等,可以通过注册自定义编辑器来实现此功能Spring使用了属性编辑的例子1.在bean上设置属性是使用PropertyEditors完成的,当遇到java.lang.String作为XML文件中声明某个bean的属性值时,Spring将使用ClassEditor尝试将参数解...翻译 2018-04-10 15:48:02 · 2598 阅读 · 0 评论 -
Spring 3提供的 core.convert 类型转换
Spring 3介绍的core.convert包提供了对通用类型的转换,它定义了SPI来实现类型转换逻辑,以及在运行时执行类型转换的API,在Spring系统中,此系统可用用作PropertyEditors的替代方法,他将外部bean属性字符串转换为所需的属性类型,公共API可以在任何需要类型转换的应用程序中使用。a.converter的使用 例子:https://blog.csdn.net/f...翻译 2018-04-10 19:15:23 · 484 阅读 · 0 评论 -
Spring 执行任务和任务计划
1.TaskExecutor类型 该接口有一个execute(Runnable task)方法,他根据线程池的语义和配置接受执行任务SimpleAsyncTaskExecutor 此实现不重用任何线程,他会为每个调用都启用一个新线程,但是他支持一个并发限制,他将阻止任何超过该限制的调用,直到一个插槽被释放为止。ConcurrentTaskExecutor 此实现是 java.util.concu...翻译 2018-04-19 10:58:26 · 1051 阅读 · 0 评论