当前位置: 首页 > news >正文

Oracle推出轻量级Java微服务框架Helidon

近日,Oracle推出了一个新的开源框架Helidon,该项目是一个用于创建基于微服务的应用程序的Java库集合。和Payara Micro、Thorntail(之前的WildFly Swarm)、OpenLiberty、TomEE等项目一样,该项目也加入了MicroProfile家族。

\\

Helidon最初被命名为J4C(Java for Cloud),其设计以简单、快速为目标,它包括两个版本:Helidon SEHelidon MP。Helidon SE提供了创建微服务的三个核心API:Web服务器、配置和安全,用于构建基于微服务的应用程序,不需要应用服务器。Helidon MP支持用于构建基于微服务的应用程序的MicroProfile 1.1规范。

\\

Web服务器

\\

受NodeJS和其他Java框架的启发,Helidon的Web服务器是一个异步、反应性API,运行在Netty之上。WebServer接口包括对配置、路由、错误处理以及构建度量和健康端点的支持。

\\

下面的示例代码演示了如何启动一个简单的Helidon Web服务器,在一个随机可用的端口上显示“It works!”:  

\\
\// 在一个随机可用的端口上启动服务器\public void startWebServerUsingRandomPort() throws Exception {\    WebServer webServer = WebServer\           .create(Routing.builder()\                   .any((req,res) -\u0026gt; res.send(\"It works!\" + \"\\"))\                   .build())\           .start()\           .toCompletableFuture()\           .get(10,TimeUnit.SECONDS);\    System.out.println(\"Server started at: http://localhost:\" + webServer.port() + \"\\");\    webServer.shutdown().toCompletableFuture();\    }\
\\

配置

\\

配置组件Config加载和处理键/值格式的配置属性。在默认情况下,配置属性将从定义好的application.propertiesapplication.yaml文件中读取,它们位于/src/main/resources目录下。

\\

下面的示例代码基于前面的例子构建,它演示了如何使用Config,通过读取applications.yaml文件获得指定的端口启动Web服务器。  

\\
\// application.yaml\server:\ port: 8080\ host: 0.0.0.0\\ \// 在application.yaml预定义的端口上启动服务器\public void startWebServerUsingDefinedPort() throws Exception {\    Config config = Config.create();\    ServerConfiguration serverConfig = ServerConfiguration.fromConfig(config.get(\"server\"));\    WebServer webServer = WebServer\           .create(serverConfig,Routing.builder()\                   .any((req,res) -\u0026gt; res.send(\"It works!\" + \"\\"))\                   .build())\           .start()\           .toCompletableFuture()\           .get(10,TimeUnit.SECONDS);\    System.out.println(\"Server started at: http://localhost:\" + webServer.port() + \"\\");\    webServer.shutdown().toCompletableFuture();\    }\
\\

安全

\\

Security为身份验证、授权和审计提供支持。已经有许多用于Helidon应用程序的安全提供程序实现。有三种方法可以将安全性内置到Helidon应用程序中:从构建器、通过配置或者是前两者的结合。

\\

下面的示例代码演示了如何构建Security实例、使用Config获取用户身份验证(使用加密密码)并显示服务器时间。

\\
\// application.yaml\http-basic-auth:\ users:\   login: \"mpredli\"\   password: \"${CLEAR=somePassword}\"\   roles: [\"user\

相关文章:

  • Postgres和MySQL创建用户并授予db权限
  • 自定义JSP标签库及Properties使用
  • Kubernetes - 集群内容器访问集群外服务
  • 同步和异步的区别
  • 认真的做羞羞的事 一颗种子的自我分享
  • Java异常机制
  • 使用Docker1.13.1快速部署ELK环境
  • SliTaz 从入门到精通
  • Decorator装饰者模式(结构型模式)
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • Anaconda3启动ipython的几种方式
  • QueryParser
  • SqlService 索引原理
  • 第五次实验
  • Sherpa | Complete Navigation System 介绍与教材
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular 响应式表单之下拉框
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java知识点总结(JavaIO-打印流)
  • Joomla 2.x, 3.x useful code cheatsheet
  • js 实现textarea输入字数提示
  • Js基础知识(四) - js运行原理与机制
  • Js基础知识(一) - 变量
  • Laravel 菜鸟晋级之路
  • MD5加密原理解析及OC版原理实现
  • MySQL QA
  • PV统计优化设计
  • rabbitmq延迟消息示例
  • SQLServer之创建数据库快照
  • SQLServer之索引简介
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 初识MongoDB分片
  • 深入浅出Node.js
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 微信小程序填坑清单
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 学习使用ExpressJS 4.0中的新Router
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (一)kafka实战——kafka源码编译启动
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)Linux 多线程条件变量同步
  • .NET Framework杂记
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net分布式压力测试工具(Beetle.DT)
  • .NET使用存储过程实现对数据库的增删改查
  • .pop ----remove 删除
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /etc/skel 目录作用