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

北京网站制作培训班汽车网址都有哪些

北京网站制作培训班,汽车网址都有哪些,郑州网站设计与制作,响应式网站建设推广在本文中#xff0c;我们将创建一个基于Java的HTTP端点#xff0c;用它创建一个可执行jar#xff0c;将其打包在Docker中#xff0c;然后立即在本地运行。 本文面向初学者#xff0c;他们想要寻找一个简单的演练来在Docker中运行Java应用程序。 描述Dockerized环境中Jav… 在本文中我们将创建一个基于Java的HTTP端点用它创建一个可执行jar将其打包在Docker中然后立即在本地运行。 本文面向初学者他们想要寻找一个简单的演练来在Docker中运行Java应用程序。 描述Dockerized环境中Java应用程序的绝大多数示例都包括使用Spring Boot之类的沉重框架。 我们想在这里表明您不需要太多的钱就可以在Docker中使用Java运行端点。 实际上我们仅将单个库用作依赖项 HttpMate core 。 对于此示例我们将使用具有单个HTTP处理程序的HttpMate的LowLevel构建器 。 本示例使用的环境 Java 11 Maven 3.5 Java友好的IDE Docker版本18 对HTTP / bash / Java的基本了解 最终结果在此git repo中可用。 组织项目 让我们创建我们的初始项目结构 mkdir -p simple-java-http-docker/src/main/java/com/envimate/examples/http 让我们从我们在这里称为simple-java-http-docker的根目录中的项目的pom文件开始 project xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://maven.apache.org/POM/4.0.0xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.envimate.examples/groupIdartifactIdsimple-java-http-docker/artifactIdversion0.0.1/versiondependenciesdependencygroupIdcom.envimate.httpmate/groupIdartifactIdcore/artifactIdversion1.0.21/version/dependency/dependencies /project 这里我们有 我们项目的标准groupId / artifactId / version定义 对HttpMate核心库的单一依赖关系 这足以开始在所选的IDE中开发我们的端点。 其中大多数都支持基于Maven的Java项目。 应用入口 要启动我们的小服务器我们将使用一个简单的main方法。 让我们在src/main/java/com/envimate/examples/http目录中作为Application.java文件创建应用程序条目该文件现在仅将时间输出到控制台。 package com.envimate.examples.http;import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;public final class Application {public static void main(String[] args) {final LocalDateTime time LocalDateTime.now();final String dateFormatted time.format(DateTimeFormatter.ISO_TIME);System.out.println(current time is dateFormatted);} } 尝试运行此类您将看到当前时间。 让我们使其更具功能并将打印时间的部分分离为不带参数的lambda函数即Supplier 。 package com.envimate.examples.http;import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.function.Supplier;public final class Application {public static void main(String[] args) {Supplier handler () - {final LocalDateTime time LocalDateTime.now();final String dateFormatted time.format(DateTimeFormatter.ISO_TIME);return current time is dateFormatted;};System.out.println(handler.get());} } 低级HttpMate提供的便捷接口看起来没有什么不同除了返回一个String 没有设置String 而是将String设置为响应以及表示一切正常的指示aka响应代码200。 final HttpHandler httpHandler (request, response) - {final LocalDateTime time LocalDateTime.now();final String dateFormatted time.format(DateTimeFormatter.ISO_TIME);response.setStatus(200);response.setBody(current time is dateFormatted); }; HttpMate还提供了一个简单的Java HttpServer包装器– PureJavaEndpoint 该包装器允许您启动端点而无需任何进一步的依赖。 我们需要做的就是为其提供HttpMate的实例 package com.envimate.examples.http;import com.envimate.httpmate.HttpMate; import com.envimate.httpmate.convenience.endpoints.PureJavaEndpoint; import com.envimate.httpmate.convenience.handler.HttpHandler;import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;import static com.envimate.httpmate.HttpMate.anHttpMateConfiguredAs; import static com.envimate.httpmate.LowLevelBuilder.LOW_LEVEL;public final class Application {public static void main(String[] args) {final HttpHandler httpHandler (request, response) - {final LocalDateTime time LocalDateTime.now();final String dateFormatted time.format(DateTimeFormatter.ISO_TIME);response.setStatus(200);response.setBody(current time is dateFormatted);};final HttpMate httpMate anHttpMateConfiguredAs(LOW_LEVEL).get(/time, httpHandler).build();PureJavaEndpoint.pureJavaEndpointFor(httpMate).listeningOnThePort(1337);} } 注意当使用方法GET调用时我们已将httpHandler配置为提供路径/time 。 现在是时候启动我们的应用程序并提出一些要求了 curl http://localhost:1337/time current time is 15:09:34.458756 在将所有内容放入Dockerfile之前我们需要将其打包为旧的jar。 建立罐子 为此我们需要两个maven插件 maven-compiler-plugin和maven-assembly-plugin来构建可执行jar。 ?xml version1.0 encodingUTF-8? project xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://maven.apache.org/POM/4.0.0xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.envimate.examples/groupIdartifactIdsimple-java-http-docker/artifactIdversion0.0.1/versiondependenciesdependencygroupIdcom.envimate.httpmate/groupIdartifactIdcore/artifactIdversion1.0.21/version/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationrelease${java.version}/releasesource${java.version}/sourcetarget${java.version}/target/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-assembly-plugin/artifactIdexecutionsexecutionphasepackage/phasegoalsgoalsingle/goal/goalsconfigurationarchivemanifestmainClasscom.envimate.examples.http.Application/mainClass/manifest/archivedescriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefs/configuration/execution/executions/plugin/plugins/build /project 一旦有了它就让我们构建jar mvn clean verify 并运行生成的jar java -jar target/simple-java-http-docker-0.0.1-jar-with-dependencies.jar 相同的卷曲度 curl http://localhost:1337/time current time is 15:14:42.992563Docker化罐子 Dockerfile看起来非常简单 FROM openjdk:12ADD target/simple-java-http-docker-0.0.1-jar-with-dependencies.jar /opt/application.jarEXPOSE 1337ENTRYPOINT exec java -jar /opt/application.jar 它指定 FROM 用作基础的图像。 我们将使用openjdk图像。 ADD 我们想要的jar到我们想要的目录 EXPOSE 我们正在监听的端口 ENTRYPOINT 对于命令我们要执行 为了构建和标记我们的docker镜像我们从目录的根目录运行以下命令 docker build --tag simple-java-http-docker . 这将产生一个我们可以运行的docker映像 docker run --publish 1337:1337 simple-java-http-docker 请注意我们传递了--publish参数该参数指示裸露的1337端口在计算机的1337端口下可用。 相同的卷曲度 curl http://localhost:1337/time current time is 15:23:04.275515 就是这样我们已经将简单的HTTP端点泊坞窗化了 结冰 当然这是一个简化的示例我们编写的端点并不完全有用。 它表明尽管您不需要大量的库就可以拥有一个正在运行的HTTP端点打包一个可运行的jar在您的Java应用程序中使用docker以及低级HttpMate的基本用法是多么容易。 当您需要快速旋转测试HTTP服务器时这种两分钟的设置很方便。 前几天我正在开发一个Twitter机器人敬请关注有关该文章的文章我必须调试接收方真正的请求。 显然我无法要求Twitter将请求转储给我因此我需要一个简单的终结点该终结点将输出有关请求的所有信息。 HttpMate的处理程序提供对名为MetaData的对象的访问该对象几乎就是所谓的–请求的元数据意味着有关请求的所有可用信息。 使用该对象我们可以打印请求的所有内容。 public final class FakeTwitter {public static void main(String[] args) {final HttpMate httpMate HttpMate.aLowLevelHttpMate().callingTheHandler(metaData - {System.out.println(metaData);}).forRequestPath(/*).andRequestMethods(GET, POST, PUT).build();PureJavaEndpoint.pureJavaEndpointFor(httpMate).listeningOnThePort(1337);} } 现在请求路径/time被替换为模式捕获所有路径并且我们可以添加所有我们感兴趣的HTTP方法。 运行我们的FakeTwitter服务器并发出请求 curl -XGET http://localhost:1337/some/path/with?someParametersomeValue 我们将在控制台中看到以下输出格式化输出以提高可读性它是下面的地图因此如果您愿意可以很好地设置其格式 {PATHPath(path/some/path/with),BODY_STRING,RAW_QUERY_PARAMETERS{someParametersomeValue},QUERY_PARAMETERSQueryParameters(queryParameters{QueryParameterKey(keysomeParameter)QueryParameterValue(valuesomeValue)}),RESPONSE_STATUS200,RAW_HEADERS{Accept*/*,Hostlocalhost:1337,User-agentcurl/7.61.0},RAW_METHODGET,IS_HTTP_REQUESTtrue,PATH_PARAMETERSPathParameters(pathParameters{}),BODY_STREAMsun.net.httpserver.FixedLengthInputStream6053cef4,RESPONSE_HEADERS{},HEADERSHeaders(headers{HeaderKey(valueuser-agent)HeaderValue(valuecurl/7.61.0),HeaderKey(valuehost)HeaderValue(valuelocalhost:1337),HeaderKey(valueaccept)HeaderValue(value*/*)}),CONTENT_TYPEContentType(valuenull),RAW_PATH/some/path/with,METHODGET,LOGGERcom.envimate.httpmate.logger.Loggers$$Lambda$17/0x000000080118f0405106c12f,HANDLERcom.envimate.examples.http.FakeTwitter$$Lambda$18/0x000000080118f44068157191 }最后的话 HttpMate本身提供了更多功能。 但是它还很年轻尚未用于生产需要您的支持 如果您喜欢阅读的内容请给我们发送电子邮件至opensourceenvimate.com或者仅尝试HttpMate并在反馈问题中发表评论让我们知道。 翻译自: https://www.javacodegeeks.com/2019/08/java-single-dependency-dockerized-http-endpoint.html
http://www.yutouwan.com/news/477721/

相关文章:

  • 博客网站开发思维导图柳州网站建设价格
  • 提供邯郸企业建网站开发者账号
  • 万网icp网站备案专题wordpress更改ip后无主题
  • 企业网站建网站开发定制案例展示
  • 做网站fjfzwl阳江市网络问政
  • 专业外贸网站品牌vi设计方案
  • 网站建设 调研报告服务器安全狗
  • 瑞安外贸网站建设大连网站快速制作
  • 全网营销型推广网站建设wordpress整合discu
  • 外贸新品开发网站徐州建设工程交易网站质量监督
  • 网站集群建设价格如何网上注销自己的公司
  • wordpress建站指南wordpress页面怎么跳转
  • 网站修改关键词WordPress数据API
  • 沈阳学网站制作学校用手机制作ppt用什么软件
  • 我赢职场wordpress泰安抖音seo
  • 公司网站开发比选百度一下你就知道
  • 上饶市住房和城乡建设部网站ci wordpress cms
  • 网站建设后台功能模块黄骅住房和城乡建设局网站
  • 做网络推广网站有哪些wordpress 件康
  • 学校网站如何建设方案网站开发人员考核指标
  • 做美容美容院网站的费用韩国风格网站模板下载
  • 按钮特效网站邮箱网址查询
  • 长沙网站建设 个人爱有声小说网站捡个校花做老婆
  • 做翻糖的网站长春网络推广公司小技巧
  • 料神wordpress建站教程全国前十装饰公司排名
  • 企业网站建设的流程与原则客户管理系统的功能
  • 宁夏住房和城乡建设官方网站二手建筑铝模板哪里有卖
  • 商城网站优化方案中国建设银行老版本下载官方网站
  • 手机电脑网站 建站程序百度推广手机app下载
  • 网站空间500M在线代理入口