

前瞻:Spring 6.0 M1发布,将停止支持Freemarker和JSP
source link: https://blog.didispace.com/spring-framework-6-0-M1/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前瞻:Spring 6.0 M1发布,将停止支持Freemarker和JSP
Spring Framework 6.0 第一个里程碑版本已经发布,目前已经可以从Spring Repo获取。这里有一些新变更我们可以提前了解一下。请大家踊跃留言、点赞、转发、再看。
Java EE迁移
甲骨文已经把Java EE捐献给Eclipse基金会数年了。Java EE的名称也变更为了Jarkarta EE,包名也相应地从javax
变更为jakarta
。例如javax.persistence
现在对应为jakarta.persistence
。
在本次里程碑版本中涉及到的两个核心容器规范JSR-250和JSR-330的包名都会迁移到Jakarta EE。
Jakarta EE的持久层规范也将在此次里程碑版本中完成迁移。这意味着javax.persistence
和jakarta.validation
都将实装。对应 Hibernate ORM 5.6.x 和 Hibernate Validator 7.0.x 。
如果您学习过程中如遇困难?可以加入我们超高质量的Spring技术交流群,参与交流与讨论,更好的学习与进步!更多Spring Boot教程可以点击直达!,欢迎收藏与转发支持!
Web 应用
Servlet中间件基准线
由于Jakarta EE的合并迁移,Servlet中间件也要进行升级。Tomcat 10, Jetty 11, 或者基于undertow-servlet-jakarta
的 Undertow 2.2.14 是目前里程碑版本的基准线。
进一步移除过时API
一些过时的基于Servlet的组件已经在本次里程碑版本中移除。
- Commons FileUpload 上传组件已经被移除。
- 相关的前后端模板Tiles布局组件例如FreeMarker、JSP停止了支持。现在Spring将精力放在了基于Restful的Web架构。
Controller扫描机制变动
现在Spring MVC和Spring WebFlux将不再将类上单独有@RequestMapping
的Spring Bean视为控制器。在6.0之前默认情况以下代码是可以的:
/**
* 6.0之前
* @author felord.cn
*/
@Component
@RequestMapping("/foo")
public class FooController {
@GetMapping("/hello")
public Map<String, String> hello() {
return Collections.singletonMap("hello", "world");
}
}
6.0之前相关基于AOP的代理机制将失效, 请为此类控制器启用基于类的代理 。
在6.0之后默认情况下必须有
@Controller
或@RestController
注解才可以被视为控制器。
HttpMethod
请求方法HttpMethod
在6.0之前为Java枚举。
/**
* 6.0 之前
*
* @since 3.0
*/
public enum HttpMethod {
GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE;
private static final Map<String, HttpMethod> mappings = new HashMap<>(16);
static {
for (HttpMethod httpMethod : values()) {
mappings.put(httpMethod.name(), httpMethod);
}
}
@Nullable
public static HttpMethod resolve(@Nullable String method) {
return (method != null ? mappings.get(method) : null);
}
public boolean matches(String method) {
return name().equals(method);
}
}
在6.0以后改为Java类:
public final class HttpMethod implements Comparable<HttpMethod>, Serializable {
private static final long serialVersionUID = -70133475680645360L;
private static final HttpMethod[] values;
private static final Map<String, HttpMethod> mappings = new HashMap<>(16);
public static final HttpMethod GET = new HttpMethod("GET");
public static final HttpMethod HEAD = new HttpMethod("HEAD");
public static final HttpMethod POST = new HttpMethod("POST");
public static final HttpMethod PUT = new HttpMethod("PUT");
// 其它省略
}
在2022年的1月份Spring Framework 6.0的第二个里程碑和对应的Spring Boot 3.0第一个里程碑将和大家见面。
好了,今天的学习就到这里!如果您学习过程中如遇困难?可以加入我们超高质量的Spring技术交流群,参与交流与讨论,更好的学习与进步!更多Spring Boot教程可以点击直达!,欢迎收藏与转发支持!
原文链接:https://mp.weixin.qq.com/s/G2an6b5jg329PudDGgTvOA
版权归作者所有,转载请注明作者、原文、译者等出处信息
Recommend
-
52
先看效果图 pjax是啥,自行百度,关于它的兼容性可以看一下我另一篇博客: h...
-
62
项目里一直用的是 spring-security ,不得不说,spring-security 真是东西太多了,学习难度太大(可能我比较菜),这篇博客来总结一下折腾shiro的成果,分享给大家,强烈推荐shiro,真心简单 : ) 引入依赖 <depend...
-
48
一、Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 在java中,主要的模板引...
-
54
一、页面静态化 1、动静态页面 静态页面 即静态网页,指已经装载好内容HTML页面,无需经过请求服务器数据和编译过程,直接加载到客户浏览器上显示出来。通俗的说就是生成独立的HTML页面,...
-
32
推荐:亲身体验,数次踩坑,遂撰写此文,以备各位不时之需。 背景 一天,产品经理递给我了一份word报告,我定睛一看 这个文...
-
9
Spring Boot 2 With JSP View Creating a Spring Boot 2 web ap...
-
7
本文是Freemarker系列的第一篇,面向模板开发人员,主要介绍 FreeMarker 所使用的 FTL(FreeMarker Template Language) 语法,了解 Freemarker 的基本概念,介绍基本的 FTL 术语 及内置函数,内置指令,方便作为开发手册速查(文中演示所用版本为 2.3.30,实际使...
-
7
Android freemarker模板引擎应用 – Android开发中文站你的位置:Android开发中文站 > Android开发 >
-
10
源码获取:博客首页 "资源" 里下载! 项目描述: 这是一个基于SpringBoot框架开发的后台管理系统脚手架项目。之所以称为脚手架项目,是因为这个项目复用性很强,如果以后有其他新的项目要设计后台管理系统...
-
15
Full Stack Java developer - Java + JSP + Restful WS + Spring Full Stack Java developer - Core Java + JSP Servlets + Hibernate +Spring + Java Web-service/RestFul API + Spring boot.
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK