SpringBoot:3.2
JDK:21
Springcloud:Springcloud2023.0.0
SpringAlibaba:2022.0.0
URL修改
路径匹配规则做了调整,默认情况下尾部的/的匹配规则和以前不同
3.0以前/foo/bar 等同于/foo/bar/
3.0以后/foo/bar 不同于/foo/bar/
替换已经弃用的包
1.javax包替换,包括但是不限于persistence、validation、annotation、xml、servlet等,需要替换为jakarta中的包(Oracle收购了Sun公司,涉及到商标和版权原因,Javax改名为Jakarta迫不得已)
2.注解@Type(type = “json”)等Hibernate自定义注解不可用,可以修改为
@JdbcTypeCode(SqlTypes.JSON)或者
@Type(value = JsonStringType.class)
3.Sort s = new Sort(d, sort);该构造方法已弃用,可以修改为
Sort.Order sordOrder = new Sort.Order(d,sort);
Sort s = Sort.by(List.of(sordOrder));
4.PageReques原来的构造方法需要修改
Pageable pageable = new PageRequest(pageNo, pageSize, Sort.Direction.ASC,"createDate"); Pageable pageable = PageRequest.of(pageNo, pageSize, s);
5.new Long(),new Integer()等已经弃用,替换为Long.valueof或者Long.parseLong,或者其他支持的写法
6.sun.misc.BASE64Decoder已弃用,修改为
Base64.getDecoder().decode(key)//解码
Base64.getEncoder().encodeToString(key);//编码,也可以使用其他的包
7.pom.xml需要去掉原来的网飞组件
JPA相关
1.原生的sql和Jpa不要混用,例如select caseId from t_clm_case,这样写会报错,原生sql大小写不敏感,Jpa需要和实体类中的名称相同
2.有重复列的表连接,要指定表名,select a.* from a,b,如果a,b中有重复的列名,必须带表别名,如a.*
, select * from a,b会报错
3.驼峰命名。横杠前不要只有1个字母,最好不要取名叫g_id,Jpa写 findByGId会报错,如果有这种的可以修改为
@Column(name = "G_ID") @JsonProperty("gId") private String GId;
也可以取其他的属性名,但是这样要改的地方就比较多一点
4.使用findById(),save()等的地方的dao需要修改,dao需要继承JpaRepository,没有用到里面的方法的话就不用改。
kafka修改
1.创建一个方法并加上@Bean注解,该方法名称在与yml文件保持一致,input名称为方法-in-0
远程调用修改
使用远程调用的地方,服务名称需要与设置的服务名称一致,大小写敏感
配置文件修改
bootstrap.yml配置文件修改,因为之前用的是eureka那一套,需要修改成nacos这一套
spring: main: # 路由采用的是reactive,其他服务都是servlet,当环境中只有webflux或者只有webmvc时可以不配置 web-application-type: servlet # 是否允许循环依赖,升级到2.6.0才出现的这个问题,需要显示的配置允许循环依赖 allow-circular-references: true application: name: AAA description: AA cloud: nacos: discovery: # 本地地址,如果是服务器修改成对应的地址 server-addr: 127.0.0.1:8848 #Nacos服务注册中心地址 namespace: dev username: nacos password: nacos group: DEFAULT_GROUP config: server-addr: ${spring.cloud.nacos.discovery.server-addr} #Nacos作为配置中心地址 file-extension: yml #指定yaml格式的配置 refresh-enabled: true #动态刷新配置 namespace: ${spring.cloud.nacos.discovery.namespace-addr} username: ${spring.cloud.nacos.discovery.username} password: ${spring.cloud.nacos.discovery.password} encode: UTF-8 group: ${spring.cloud.nacos.discovery.group} enabled: true shared-configs: - data-id: claims-jwt.yml namespace: dev refresh: true - data-id: claims-redis.yml namespace: dev refresh: true - data-id: claims-database.yml namespace: dev refresh: true - data-id: claims-common.yml namespace: dev refresh: true - data-id: claims-key.yml namespace: dev refresh: true
取消使用Swagger2 ,引用的spring-plugin-core包有冲突
其他
异步方法返回值应该为void或者Future