推荐Java五大微服务器及其代码示例教程

下面为大家讲述一下Java五大微服务器,使用这些功能的好处以及相关的代码示例。 微服务越来越多地用于开发领域,因为开发人员致力于创建更大,更复杂的应用程序,这些应用程序作为较小的服务组合而更好地开发和管理,可将工作在一起,实现更大的应用程序范围的功能。工具正在上升,以满足使用逐块方法思考和构建应用程序的需求,与同时考虑整个应用程序相比。下面为大家讲述一下Java五大微服务器,使用这些功能的好处以及相关的代码示例。

什么是微服务 微服务是一种面向服务的架构风格(Java开发人员最重要的技能之一),其中应用程序被构建为不同的小型服务而不是整个应用程序的集合。您可以使用多个独立的应用程序来独立运行,并且可以使用不同的编码或编程语言来创建。大而复杂的应用程序可以由可自行执行的更简单和独立的程序组成。这些较小的程序组合在一起,以提供大型单片应用程序的所有功能。 微服务捕获用户的业务场景,它通常由只有少数成员的工程团队开发,可以用任何编程语言编写并且可以使用任何框架。每个涉及的程序都是独立版本化,执行和缩放。这些微服务器可以与其他微服务器交互,并且可以具有唯一的URL或名称,同时即使遇到故障时始终可用和一致。 微服务的好处是什么? 使用微服务使得较小的应用程序不依赖于相同的编码语言,开发人员可以使用他们最熟悉的编程语言。这有助于开发人员以更低的成本和更少的错误更快地提出一个程序。灵活性和低成本也可以来自于将这些较小的程序重用于其他项目,从而使其更有效率。 Java的微服务框架示例 可用于开发Java的微服务框架,其中包括如下: Spring Boot:这可能是最好的Java微服务框架,它可以用于反转控制,面向对象编程等语言。 Jersey :开源框架支持Java中的JAX-RS API非常容易使用。 Swagger:帮助用户记录API,并为用户提供开发门户,允许用户测试API。 用户还可以考虑的其他内容包括:Dropwizard,Ninja Web Framework,Play Framework,RestExpress,Restlet,Restx和Spark Framework。 如何使用Microservices With Spring Boot创建 Spring Boot使用户可以通过嵌入式服务器将Java应用程序与自己的应用程序一起使用。不必再使用其他Java EE容器。 Spring Boot项目包括:

  1. Spring IO平台:版本化应用程序的企业级分发
  2. Spring框架:用于事务管理,依赖注入,数据访问,消息传递和Web应用程序
  3. Spring Cloud:用于分布式系统,用于构建或部署您的微服务器
  4. Spring数据:对于与数据访问相关的微服务,无论是映射减少,关系还是非关系
  5. Spring Batch:用于批处理作业等操作
  6. Spring Security:用于授权和身份验证支持
  7. Spring REST文档:用于记录RESTful服务
  8. Spring Social:用于连接社交媒体API
  9. Spring Mobile:适用于移动网络应用 快速搭建Spring Boot框架,参考示例代码: import org.springframework.boot.; import org.springframework.boot.autoconfigure.; import org.springframework.stereotype.; import org.springframework.web.bind.annotation.; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } } Jersey Jersey RESTful框架是开源的,它基于JAX-RS规范。Jersey应用程序可以扩展现有的JAX-RS实现并添加功能和实用程序,使RESTful服务更简单,并使客户端开发变得更加轻松。 Jersey最好的一点是它有很好的文档,完善的案例。性能方面快捷并且路由简单,参考示例代码: package org.glassfish.jersey.examples.helloworld; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; @Path("helloworld") public class HelloWorldResource { public static final String CLICHED_MESSAGE = "Hello World!"; @GET @Produces("text/plain") public String getHello() { return CLICHED_MESSAGE; } } Jersey 非常容易与其他libraries一起使用,如Netty或Grizzly,支持异步连接不需要servlet容器,然而它有一个不依赖注入的实现。 Play Framework Play Framework为用户提供了使用Scala和Java构建,创建和部署Web应用程序的更加简单的方法。Play Framework是RESTful应用程序的理想选择,需要您并行处理远程调用。它也非常模块化,支持异步。Play Framework也是所有微服务框架中最大的社区之一。 参考示例代码: package controllers; import play.mvc.*; public class Application extends Controller { public static void index() { render(); } public static void sayHello(String myName) { render(myName); } } Restlet Restlet帮助开发人员创建遵循RESTful架构模式的快速和可扩展的Web API。它具有良好的路由和过滤功能,可用于Java SE/EE,OSGi,Google AppEngine(Google Compute部分),Android和其他主要平台。 参考示例代码: package firstSteps; import org.restlet.resource.Get; import org.restlet.resource.ServerResource; /** * Resource which has only one representation. */ public class HelloWorldResource extends ServerResource { @Get public String represent() { return "hello, world"; } } DropWizard DropWizard将成熟稳定的Java库集成在轻量级包中,可用于自己的应用程序。它使用Jetty for HTTP,Jersey for REST和Jackson for JSON,以及Metrics,Guava,Logback,Hibernate Validator,Apache HttpClient,Liquibase,Mustache,Joda Time和Freemarker。 您可以使用Maven设置Dropwizard应用程序在pom.xml文件中,使用最新版本的DropWizard添加一个dropwizard.version属性 <dropwizard.version>LATEST VERSION</dropwizard.version> io.dropwizard dropwizard-core ${version} Maven项目设置完成后,可以创建配置类,应用程序类,表示类,资源类或运行状况检查,还可以构建Fat JARS,然后运行应用程序。 在此链接中查看Dropwizard用户手册,GitHub地址:https://github.com/dropwizard/dropwizard,参考示例代码: package com.example.helloworld; import com.yammer.dropwizard.config.Configuration; import com.fasterxml.jackson.annotation.JsonProperty; import org.hibernate.validator.constraints.NotEmpty; public class HelloWorldConfiguration extends Configuration { @NotEmpty @JsonProperty private String template; @NotEmpty @JsonProperty private String defaultName = "Stranger"; public String getTemplate() { return template; } public String getDefaultName() { return defaultName; } } 如果你也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为: 454377428 注:加群要求 1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。 2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。 3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。 4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。 5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知! 6.小号或者小白之类加群一律不给过,谢谢。 目标已经有了,下面就看行动了!记住:学习永远是自己的事情,你不学时间也不会多,你学了有时候却能够使用自己学到的知识换得更多自由自在的美好时光!时间是生命的基本组成部分,也是万物存在的根本尺度,我们的时间在那里我们的生活就在那里!我们价值也将在那里提升或消弭!Java程序员,加油吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值