vs code编写java

在本系列有关云原生Java应用程序的前几篇文章中,我共享了云原生Java软件的6个要求和云原 生Java必须提供的4件事 。 但是现在,您可能希望在本地计算机上实现这些高级Java应用程序,而又不会经历陡峭的学习过程。 在本文中,我将逐步使用开放源码技术QuarkusVisual 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扩展名是默认选择的。




vs可以编译Java吗 vs可以写java代码吗_编程语言


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中。


vs可以编译Java吗 vs可以写java代码吗_linux_02


开始编码

使用Quarkus开发模式运行应用程序。 要运行该应用程序,您需要:

  • 正确配置了JAVA_HOME的JDK 1.8+已安装
  • Apache Maven 3.6.3以上

移至code-with-quarkus目录,然后在VS Code的终端中键入mvn compile quarkus:dev


vs可以编译Java吗 vs可以写java代码吗_linux_03


您将看到Java应用程序在以下方面运行良好:

  • 大约一秒钟启动
  • 实时编码已激活
  • 启用的CDI和RESTEASY功能

通过Web浏览器访问端点时,您将看到返回代码hello


vs可以编译Java吗 vs可以写java代码吗_java_04


现在,您可以更改代码了! 返回VS Code,然后打开src / main / java / org / acme中ExampleResource.java文件。 将返回码替换为“ 欢迎使用Quarkus的Java原生Java!”。 不要忘记保存文件。


vs可以编译Java吗 vs可以写java代码吗_python_05


返回Web浏览器并重新加载页面。


vs可以编译Java吗 vs可以写java代码吗_python_06


就像魔术! 在后台,Quarkus自动为您重建,打包和部署了该应用程序,仅用了半秒钟。 这是用于提高开发效率的基本云本机Java运行时功能之一。


vs可以编译Java吗 vs可以写java代码吗_python_07


继续在Quarkus中运行您的云原生Java应用程序。

通过Quakrus工具集成数据交易

要添加内存数据库(H2)事务功能,请按F1,然后单击Quarkus:向当前项目添加扩展


vs可以编译Java吗 vs可以写java代码吗_linux_08


在搜索栏中输入h2 ,然后在结果中双击JDBC Driver-H2 Data


vs可以编译Java吗 vs可以写java代码吗_vs可以编译Java吗_09


选择以下三个扩展,这将简化您的持久性代码并返回JSON格式的数据:

  • 带有Panache数据的Hibernate ORM
  • JDBC驱动程序-H2
  • RESTEasy JSON-B网站

Enter键添加那些依赖项。


vs可以编译Java吗 vs可以写java代码吗_vs可以编译Java吗_10


您应该在新的VS Code终端中看到以下内容:


vs可以编译Java吗 vs可以写java代码吗_编程语言_11


您还应该在POM.xml中找到以下提取的依赖


vs可以编译Java吗 vs可以写java代码吗_java_12


创建库存实体

第一步是定义库存对象的模型(实体)。 由于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 。 你会看见:


vs可以编译Java吗 vs可以写java代码吗_linux_13


结语

如果您在执行此操作时遇到问题或遇到错误,则可以在我的GitHub存储库中查找并重用代码

如果您想了解更多信息,Quarkus提供了一些实用且有用的指南这些指南显示了如何使用Quarkus扩展,事件驱动的编程,无服务器开发和Kubernetes部署来开发高级云原生Java应用程序。

翻译自: https://opensource.com/article/20/4/java-quarkus-vs-code

vs code编写java