溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java五大微服務(wù)器代碼示例分析

發(fā)布時(shí)間:2022-01-05 14:39:03 來源:億速云 閱讀:177 作者:iii 欄目:云計(jì)算

這篇文章主要講解了“Java五大微服務(wù)器代碼示例分析”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java五大微服務(wù)器代碼示例分析”吧!

微服務(wù)越來越多地用于開發(fā)領(lǐng)域,因?yàn)殚_發(fā)人員致力于創(chuàng)建更大,更復(fù)雜的應(yīng)用程序,這些應(yīng)用程序作為較小的服務(wù)組合而更好地開發(fā)和管理,可將工作在一起,實(shí)現(xiàn)更大的應(yīng)用程序范圍的功能。工具正在上升,以滿足使用逐塊方法思考和構(gòu)建應(yīng)用程序的需求,與同時(shí)考慮整個(gè)應(yīng)用程序相比。下面本站素文宅博客為大家講述一下Java五大微服務(wù)器,使用這些功能的好處以及相關(guān)的代碼示例。

什么是微服務(wù) 微服務(wù)是一種面向服務(wù)的架構(gòu)風(fēng)格(Java開發(fā)人員最重要的技能之一),其中應(yīng)用程序被構(gòu)建為不同的小型服務(wù)而不是整個(gè)應(yīng)用程序的集合。您可以使用多個(gè)獨(dú)立的應(yīng)用程序來獨(dú)立運(yùn)行,并且可以使用不同的編碼或編程語言來創(chuàng)建。大而復(fù)雜的應(yīng)用程序可以由可自行執(zhí)行的更簡(jiǎn)單和獨(dú)立的程序組成。這些較小的程序組合在一起,以提供大型單片應(yīng)用程序的所有功能。

微服務(wù)捕獲用戶的業(yè)務(wù)場(chǎng)景,它通常由只有少數(shù)成員的工程團(tuán)隊(duì)開發(fā),可以用任何編程語言編寫并且可以使用任何框架。每個(gè)涉及的程序都是獨(dú)立版本化,執(zhí)行和縮放。這些微服務(wù)器可以與其他微服務(wù)器交互,并且可以具有唯一的URL或名稱,同時(shí)即使遇到故障時(shí)始終可用和一致。

微服務(wù)的好處是什么? 使用微服務(wù)使得較小的應(yīng)用程序不依賴于相同的編碼語言,開發(fā)人員可以使用他們最熟悉的編程語言。這有助于開發(fā)人員以更低的成本和更少的錯(cuò)誤更快地提出一個(gè)程序。靈活性和低成本也可以來自于將這些較小的程序重用于其他項(xiàng)目,從而使其更有效率。

Java的微服務(wù)框架示例 可用于開發(fā)Java的微服務(wù)框架,其中包括如下: Spring Boot:這可能是最好的Java微服務(wù)框架,它可以用于反轉(zhuǎn)控制,面向?qū)ο缶幊痰日Z言。 Jersey :開源框架支持Java中的JAX-RS API非常容易使用。 Swagger:幫助用戶記錄API,并為用戶提供開發(fā)門戶,允許用戶測(cè)試API。 用戶還可以考慮的其他內(nèi)容包括:Dropwizard,Ninja Web Framework,Play Framework,RestExpress,Restlet,Restx和Spark Framework。

如何使用Microservices With Spring Boot創(chuàng)建 Spring Boot使用戶可以通過嵌入式服務(wù)器將Java應(yīng)用程序與自己的應(yīng)用程序一起使用。不必再使用其他Java EE容器。

Spring Boot項(xiàng)目包括:

  1. Spring IO平臺(tái):版本化應(yīng)用程序的企業(yè)級(jí)分發(fā)

  2. Spring框架:用于事務(wù)管理,依賴注入,數(shù)據(jù)訪問,消息傳遞和Web應(yīng)用程序

  3. Spring Cloud:用于分布式系統(tǒng),用于構(gòu)建或部署您的微服務(wù)器

  4. Spring數(shù)據(jù):對(duì)于與數(shù)據(jù)訪問相關(guān)的微服務(wù),無論是映射減少,關(guān)系還是非關(guān)系

  5. Spring Batch:用于批處理作業(yè)等操作

  6. Spring Security:用于授權(quán)和身份驗(yàn)證支持

  7. Spring REST文檔:用于記錄RESTful服務(wù)

  8. Spring Social:用于連接社交媒體API

  9. Spring Mobile:適用于移動(dòng)網(wǎng)絡(luò)應(yīng)用

參考示例代碼:

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規(guī)范。Jersey應(yīng)用程序可以擴(kuò)展現(xiàn)有的JAX-RS實(shí)現(xiàn)并添加功能和實(shí)用程序,使RESTful服務(wù)更簡(jiǎn)單,并使客戶端開發(fā)變得更加輕松。

Jersey最好的一點(diǎn)是它有很好的文檔,完善的案例。參考示例代碼:

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容器,然而它有一個(gè)不依賴注入的實(shí)現(xiàn)。

Play Framework Play Framework為用戶提供了使用Scala和Java構(gòu)建,創(chuàng)建和部署Web應(yīng)用程序的更加簡(jiǎn)單的方法。Play Framework是RESTful應(yīng)用程序的理想選擇,需要您并行處理遠(yuǎn)程調(diào)用。它也非常模塊化,支持異步。Play Framework也是所有微服務(wù)框架中最大的社區(qū)之一。

參考示例代碼:

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幫助開發(fā)人員創(chuàng)建遵循RESTful架構(gòu)模式的快速和可擴(kuò)展的Web API。它具有良好的路由和過濾功能,可用于Java SE/EE,OSGi,Google AppEngine(Google Compute部分),Android和其他主要平臺(tái)。

參考示例代碼:

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將成熟穩(wěn)定的Java庫集成在輕量級(jí)包中,可用于自己的應(yīng)用程序。它使用Jetty for HTTP,Jersey for REST和Jackson for JSON,以及Metrics,Guava,Logback,Hibernate Validator,Apache HttpClient,Liquibase,Mustache,Joda Time和Freemarker。

您可以使用Maven設(shè)置Dropwizard應(yīng)用程序在pom.xml文件中,使用最新版本的DropWizard添加一個(gè)dropwizard.version屬性

<properties>
    <dropwizard.version>LATEST VERSION</dropwizard.version>
</properties>
<!--Then list the dropwizard-core library:-->
<dependencies>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
        <version>${version}</version>
    </dependency>
</dependencies>

Maven項(xiàng)目設(shè)置完成后,可以創(chuàng)建配置類,應(yīng)用程序類,表示類,資源類或運(yùn)行狀況檢查,還可以構(gòu)建Fat JARS,然后運(yùn)行應(yīng)用程序。

參考示例代碼:

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;
    }
}

感謝各位的閱讀,以上就是“Java五大微服務(wù)器代碼示例分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java五大微服務(wù)器代碼示例分析這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI