问一下大家都是如何平衡Jdk版本和项目的

本人大二马上大三,几天前做了一个ssm整合项目随便找的,但是他用的jdk版本是8,虽然b站上面的视频基本都是8,但是我当时下jdk也没想那么多肯定是新版本啥的觉得好用就17了还是长期支持版本。我是不是该下个jdk在项目中把版本改过去呢...

jdk·java
140 views
Comments
登录后评论
Sign In
·

java8 真的要弃用了,语法太啰嗦,整个屏幕都是声明代码,比如:

DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setUserDetailsService(uds);
PasswordEncoder passwordEncoder = getBeanOrNull(PasswordEncoder.class);

用 var 类型推断写成:

var provider = new DaoAuthenticationProvider();
provider.setUserDetailsService(uds);
var passwordEncoder = getBeanOrNull(PasswordEncoder.class);

还有 switch、instance 语法可以简化很多代码,17 就挺好的,spring boot 已经支持 java17 很久了,后面的 spring boot3 要求最低 java 版本是 17,会强制切换

·

才知道 ssm 是什么意思......直接 11(oracle JDK 收费) 或者 17(oracle JDK 免费) 都是OK的,你看的视频有点老了,可以看看 youtube 上的。

·

我有和你相似的经历, 不过我是SpringBoot2 工程中途切换到Java17 添加了这几个pom依赖解决了

<!--解决Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter-->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>

当然, 你可以先尝试一下修改项目Java版本, 运行一下看看是否报错, 如果出现了我类似的问题再添加依赖

对于IDEA你可以在 project structure 中改变Java版本

我没有没有使用过很多Java17 的新特性, 但是我感觉有一点是编译速度更快了

Java很强调向下兼容, 对于迁移Java版本其实没那么难

·

怎么平衡,自己玩为了快乐,上最新的 jdk18,公司里的活为了少给自己找麻烦,万年 1.8,

问题来了,,闲了有空了你还写代码吗 laughing