vs code编写java
在本系列有关云原生Java应用程序的前几篇文章中,我共享了云原生Java软件的6个要求和云原 生Java必须提供的4件事 。 但是现在,您可能希望在本地计算机上实现这些高级Java应用程序,而又不会经历陡峭的学习过程。 在本文中,我将逐步使用开放源码技术Quarkus和Visual Studio Code (VS Code),以更简便,更熟悉的方法,加速传统云原生Java堆栈以及无服务器,响应式应用程序的开发。
Quarkus是为GraalVM和OpenJDK HotSpot量身定制的Kubernetes原生Java堆栈。 它由同类最佳的Java库和标准精心制作而成,具有实时编码,统一配置,超快速启动,较小的内存占用以及统一的命令式和响应式开发。 VS Code是用于编辑代码的开源集成开发环境(IDE)。
生成一个Quarkus项目
首先,导航至Quarkus的“ 开始编码”页面,以生成包含RESTful端点的Quarkus项目。 将所有变量(即Group,Artifact,Build Tool,Extensions)保留为默认设置,然后单击页面右上方的Generate your application 。 请注意,RESTEasy JAX-RS扩展名是默认选择的。
ZIP文件将自动下载到您的本地计算机上。 使用以下命令提取文件:
$
unzip code-with-quarkus.zip
Archive: code-with-quarkus.zip
creating: code-with-quarkus
/
inflating: code-with-quarkus
/ pom.xml
...
安装VS代码
无论是从网站还是通过软件包管理器(dnf,apt,brew等),都以您喜欢的方式下载并安装VS Code。 完成后,使用VS Code的命令行工具打开解压缩的Quarkus项目:
$
cd code-with-quarkus
/
$ code .
您将看到带有以下内容的Apache Maven项目结构:
- Example在/ hello中公开的资源
- 关联的JUnit测试
- 可通过http:// localhost:8080访问登录页面
- 用于本机编译和JVM HotSpot的Dockerfile
- 统一的应用程序配置文件
通过VS Code的扩展功能将Quarkus工具添加到您的IDE中。
开始编码
使用Quarkus开发模式运行应用程序。 要运行该应用程序,您需要:
- 正确配置了JAVA_HOME的JDK 1.8+已安装
- Apache Maven 3.6.3以上
移至code-with-quarkus目录,然后在VS Code的终端中键入mvn compile quarkus:dev 。
您将看到Java应用程序在以下方面运行良好:
- 大约一秒钟启动
- 实时编码已激活
- 启用的CDI和RESTEASY功能
通过Web浏览器访问端点时,您将看到返回代码hello 。
现在,您可以更改代码了! 返回VS Code,然后打开src / main / java / org / acme中的ExampleResource.java文件。 将返回码替换为“ 欢迎使用Quarkus的Java原生Java!”。 不要忘记保存文件。
返回Web浏览器并重新加载页面。
就像魔术! 在后台,Quarkus自动为您重建,打包和部署了该应用程序,仅用了半秒钟。 这是用于提高开发效率的基本云本机Java运行时功能之一。
继续在Quarkus中运行您的云原生Java应用程序。
通过Quakrus工具集成数据交易
要添加内存数据库(H2)事务功能,请按F1,然后单击Quarkus:向当前项目添加扩展 。
在搜索栏中输入h2 ,然后在结果中双击JDBC Driver-H2 Data 。
选择以下三个扩展,这将简化您的持久性代码并返回JSON格式的数据:
- 带有Panache数据的Hibernate ORM
- JDBC驱动程序-H2
- RESTEasy JSON-B网站
按Enter键添加那些依赖项。
您应该在新的VS Code终端中看到以下内容:
您还应该在POM.xml中找到以下提取的依赖项 :
创建库存实体
第一步是定义库存对象的模型(实体)。 由于Quarkus使用Hibernate ORM Panache,因此在src.main.java.org.acme目录中创建一个Inventory.java文件,并将以下代码粘贴到其中:
package
org.acme
;
import
javax.persistence.Cacheable
;
import
javax.persistence.Entity
;
import
io.quarkus.hibernate.orm.panache.PanacheEntity
;
@
Entity
@Cacheable
public
class Inventory
extends PanacheEntity
{
public
String itemId
;
public
String location
;
public
int quantity
;
public
String link
public Inventory
(
)
{
}
}
定义清单的RESTful端点
接下来,镜像服务的抽象,以便将来可以将清单服务注入到各个地方(例如RESTful资源端点)。 在src.main.java.org.acme目录中创建一个InventoryResource.java文件,并将以下代码添加到其中:
package
org.acme
;
import
java.util.List
;
import
javax.enterprise.context.ApplicationScoped
;
import
javax.ws.rs.Consumes
;
import
javax.ws.rs.GET
;
import
javax.ws.rs.Path
;
import
javax.ws.rs.Produces
;
@Path
(
"/services/inventory"
)
@ApplicationScoped
@Produces
(
"application/json"
)
@Consumes
(
"application/json"
)
public
class InventoryResource
{
@GET
http
:
//localhost:8080/services/inventory
public List
< Inventory
> getAll
(
)
{
return Inventory.
listAll
(
)
;
}
}
不要忘记保存这些文件。 返回您的Web浏览器并访问一个新的端点http:// localhost:8080 / services / inventory 。 你会看见:
结语
如果您在执行此操作时遇到问题或遇到错误,则可以在我的GitHub存储库中查找并重用代码 。
如果您想了解更多信息,Quarkus提供了一些实用且有用的指南 , 这些指南显示了如何使用Quarkus扩展,事件驱动的编程,无服务器开发和Kubernetes部署来开发高级云原生Java应用程序。
翻译自: https://opensource.com/article/20/4/java-quarkus-vs-code
vs code编写java