首页>>后端>>Spring->springboot哪个版本稳定?

springboot哪个版本稳定?

时间:2023-12-02 本站 点击:0

springboot2.0.0.m2是什么版本

Release 表示 是正式的版本.

RC stands for Release Candidate 表示 后选版本

M stands for milestone 表示里程碑版本.

一般而言, 稳定性由上而下, 依次降低.

,

springboot快速入门及@SpringBootApplication注解分析

简单demo

使用 maven 构建项目,官方现在稳定版本是1.5.4,第一个入门demo不是web项目,pom依赖如下:

实体 User 类:

配置类:

入口类 Application :

项目结构目录

启动程序,以 main 方法启动:

打印出正确的结果。

来分析一下流程,为何 Runnable 类, User , Map 会纳入spring容器。

首先我们分析的就是入口类 Application 的启动注解 @SpringBootApplication ,进入源码:

发现 @SpringBootApplication 是一个复合注解,包括 @ComponentScan ,和 @SpringBootConfiguration , @EnableAutoConfiguration 。

根据上面的理解,上面的入口类 Application ,我们可以使用:

使用 @ComponentScan 注解代替 @SpringBootApplication 注解,也可以正常运行程序。原因是 @SpringBootApplication 中包含 @ComponentScan ,并且 springboot 会将入口类看作是一个 @SpringBootConfiguration 标记的配置类,所以定义在入口类 Application 中的 Runnable 也可以纳入到容器管理。

看一个demo学会使用这些参数配置

在包下com.zhihao.miao.springboot定义一个启动应用类(加上@SpringBootApplication注解)

在com.zhihao.miao.beans包下定义一个实体类,并且想将其纳入到spring容器中,

启动启动类,打印结果如下:

说明Cat类并没有纳入到spring容器中,这个结果也如我们所想,因为@SpringBootApplication只会扫描@SpringBootApplication注解标记类包下及其子包的类(特定注解标记,比如说@Controller,@Service,@Component,@Configuration和@Bean注解等等)纳入到spring容器,很显然MyConfig不在@SpringBootApplication注解标记类相同包下及其子包的类,所以需要我们去配置一下扫包路径。

修改启动类,@SpringBootApplication(scanBasePackages = "com.zhihao.miao"),指定扫描路径:

启动并打印:

当然使用@SpringBootApplication(scanBasePackageClasses = MyConfig.class),指定scanBasePackageClasses参数的value值是你需要扫描的类也可以,结果一样,不过如果多个配置类不在当前包及其子包下,则需要指定多个。

再看一个列子,

在上面的列子的相同包下(com.zhihao.miao.springboot)配置了People,并将其纳入到spring容器中(@Component),我们知道@SpringBootApplication注解会扫描当前包及其子包,所以People类会纳入到spring容器中去,我们需要将其排除在spring容器中,如何操作?

可以使用@SpringBootApplication的另外二个参数(exclude或excludeName)

启动类,

启动并打印结果:

然后修改@SpringBootApplication配置,

很明显启动报错。使用@excludeName注解也可以。如下,

@SpringBootApplication(excludeName = {"com.zhihao.miao.springboot.People"})

参考文档:

Springboot1.5.4官方文档

springboot1.5,2.1 + jdk8,jdk11的 内存占用对比

对新的技术学习 探索 是一件快乐而有趣的事情。

最近关注了 springboot最新版本2.1.1,jdk11。然后准备把手头的学习项目升级一下。

那么 为什么不用jdk12 而使用jdk11?我的判断很简单,因为jdk11是LTS版本啊。

那么 升级总得有个差异,所以简单的通过项目版本变更对比下 内存耗用情况。

首先介绍下我的项目:

springboot 1.5.15 +swagger+undertow+spring-orm4.3.3 + jdk1.8

当前版本内存耗费截图如下:

启动时间 :Started JdyXcxApi in 4.58 seconds (JVM running for 5.083)

内存情况 : 堆内存中的初试内存堆大小500M,使用200M,超过30的时候回收了一下

开始升级springboot :

springboot 2.1.1 +swagger+undertow+spring-orm 5.1.4 + jdk1.8

启动时间 :Started JdyXcxApi in 3.967 seconds (JVM running for 4.832)

内存情况: 堆内存中的初试内存堆大小500M,使用100M,超过250M的时候回收了一下

开始升级jdk :

springboot  2.1.1  +swagger+undertow+spring-orm 5.1.4  + jdk11

启动时间 :Started JdyXcxApi in 3.825 seconds (JVM running for 4.581)

内存情况: 堆内存中的初试内存堆大小300M,使用78M,超过 M的时候回收了一下

综合统计:

如何选择Spring Boot最稳定的版本,以及相应的Spring Cloud版本

1、登录 Spring的官网 ,查看当前最稳定的版本。

当然了,想使用Spring Cloud,还需要许多的jar包,如何选择兼容的jar包呢?在这里,我们可以考虑使maven的 dependencyManagement 功能。

dependencyManagement 其实就相当于一个对jar版本进行管理的依赖管理器,如果在 dependencies 的 dependency 里没有找到 version 属性,Maven就会去 dependencyManagement 里寻找相应的版本信息。

如果既使用了 dependencyManagement 功能,又在 dependencies 的 dependency 里指定了 version 属性, dependency 是以 version 属性为准的,所以,不用担心使用 dependencyManagement 功能之后无法自行指定jar包的版本信息。

在这里,我们选择的是alibaba的版本管理配置。

首先,进入 阿里巴巴的GitHub地址 ,进入WiKi页面,点击版本说明。

或者直接点击 版本说明

我们可以看到,2.4.2版本的Spring Boot,对应的alibaba 版本是2020.0.RC1,对应的Spring Cloud版本是2020.0,我们选择2020.0.2,最终配置如下。

我这里是为了学习,所以选择的都是最新版本,在生产环境,还是要根据实际情况来详细评估选择哪些版本,以免给自己挖坑。

jdk1.7选什么版本springboot

1.56。由于springboot2.0以后不支持jdk1.7,所以只能自降springboot的版本由2.0降为1.56。当选用jdk1.7构建springboot项目时会提示,选用jdk1.8。

请问2021年最稳定的jdk版本or哪个最好用,最流行!

Java8是继Java5之后改动最大的一个版本,很经典,目前企业用的最多的还是Java8,即使有人用Java11,但特性可能还是只用了Java8的,所以还是java8吧


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Spring/10020.html