1.支持将字符串型的日期,直接转换成为LocalDate类型
@RestController
public class ExampleController {
@RequestMapping("/date/{localDate}")
public String get(@DateTimeFormat(iso = ISO.DATE) LocalDate localDate)
{
return localDate.toString();
}}
2.Spring 4支持对注解@Scheduled和@PropertySource的重复
3.Spring4 支持Java Optional,可以强制要求程序员对可能出现空指针的参数或返回值进行检查
4.Java 8支持在编译后的代码中保留方法的参数名。这意味着Spring 4可以从方法中提取参数名,从而使SpringMVC代码更为简洁
例如:
@RequestMapping("/accounts/{id}")public Account getAccount(@PathVariable("id") String id)
可以改写为:
@RequestMapping("/accounts/{id}")public Account getAccount(@PathVariable String id)
但是对于抽象方法,则需要在编译的时候加入-parameters的选项,JAVA8才会保留参数名,否则仍然需要在注解中注明参数名
5.通过新的@RestController指定在控制器上,这样就不需要在每个@RequestMapping方法上加 @ResponseBody了。而且添加了一个AsyncRestTemplate ,支持REST客户端的异步无阻塞支持。
6.支持泛型依赖注入http://jinnianshilongnian.iteye.com/blog/1989330
7. Map依赖注入:
- @Autowired
- private Map<String, BaseService> map;
这样会注入:key是bean名字;value就是所有实现了BaseService的Bean
8.List/数组注入:
- @Autowired
- private List<BaseService> list;
这样会注入所有实现了BaseService的Bean;但是顺序是不确定的,如果我们想要按照某个顺序获取;在Spring4中可以使用@Order或实现Ordered接口来实现
9.@Lazy可以延迟依赖注入
10.支持@Conditional注解http://jinnianshilongnian.iteye.com/blog/1989379 用于通过注解来决定Bean的创建方式等
11.基于CGLIB的类代理不再要求类必须有空参构造器了:
参考资料:
http://www.infoq.com/cn/articles/spring-4-java-8


2万+

被折叠的 条评论
为什么被折叠?



