用OpenJAVA开发Spring Boot
首先
春季启动真的很方便啊!
如果想要开发一个规模较大的Web应用程序,我认为需要一个应用程序框架。无论是EJB、Struts还是Spring Framework,Java的框架都非常复杂。而在此时,考虑到Spring Tool Suite的易用性和Spring Boot可以快速构建出真正实用的应用程序,我认为它真的非常方便。
不过,Spring Boot的默认JDK是Oracle Java SE 8。
由于Oracle的JDK的授权条款已经改变,虽然可以免费用于开发和个人学习,但在公司业务中使用时需要注意。
因此,我考虑是否可以使用OpenJDK。
突然从结论开始
首先,我对是否能够实现很感兴趣,所以先说结论。
可以的。完全没有问题。至少在我创建的这个程度的Web应用中,
目前还没有出现问题。
所以,接下来我将介绍我的环境。
卸载Oracle JDK并安装OpenJDK。
我以前一直安装了Oracle Java SE Developer kit,因为无论如何都需要,但是我决定大胆地卸载了它。
根据Oracle Java SE的下载页面上的指引,您可以从以下网站下载OpenJDK。
http://jdk.java.net/ 的原文请参考
下载并解压Windows/64位的zip文件,然后将其复制到Program Files¥Java目录下。
如您所见,Program Files文件夹中只安装了OpenJDK。虽然还装有版本12,但请不必在意。^^;
我指定了OpenJDK-14文件夹作为环境变量JAVA_HOME的路径,并将OpenJDK-14的bin文件夹指定为路径中的环境变量PATH。
春季工具套件的配置
因为在安装时,Spring Tool Suite默认选择Java 8作为默认的JDK,所以我们需要将其更改为OpenJDK 14。
我认为这个大概没有问题,但是如果需要编辑项目库的引用或执行环境,可能需要进行以下步骤。
添加库路径
设置执行环境
在Spring Tool Suite中,我们可以通过「运行为」选项设置JRE。
Maven的配置
在Maven的依赖环境配置(pom.xml)中,还有一个地方可以记录Java的版本,我们将其设为14。还要注意的是,在创建Spring Starter项目时选择Java 14,将默认设置为14。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>LoggerREST-java14</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>LoggerREST-java14</name>
<description>Database Interface for Android</description>
<properties>
<java.version>14</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
运行Spring Boot
好的,设置已经完成。让我们来运行一下。
在Package Explorer中右键点击项目->[运行为]->[Spring Boot App]进行选择。
然后会出现一个OpenJDK的警告信息,提示”-Xverify:none和-noverify已经过时了哦~”。我认为当使用Spring Tool Suite执行java命令时,会指定这个选项,但是我找不到它。暂时忽略它应该没关系。^^;
实际上,我正在Qiita上上传的项目就在这个环境中运行的。
总结
结果是,在OpenJDK 14上,Spring Boot正常运行。
我不知道为什么默认情况下使用的是Oracle Java 8,但是在开发/执行环境中,使用Oracle的正式版本并购买适当的许可证才是合适的,如果要制作和销售软件包的话。
如果考虑一下,企业应用的Linux当然会使用RHEL,并购买许可证,这是日本IT建筑业的做法……不过,近年来,我们已经远离这种开发方式,那现在的情况是怎样的呢?
本次使用的环境
-
- Windows 10 Pro 1909
-
- OpenJDK 14.0.1
-
- Spring Tool Suite 4 Version 4.6.2.RELEASE
- Spring Boot v2.3.0.RELEASE