随手看的一本书《java微服务》,测试成功了其中的第一个样例
静态语言,JAVA应该多了解,结合微服务,DOCKER,再搞搞SPRING CLOUD,就能跟上时代了。
对了,链一个买书的地址:
https://item.jd.com/12089180.html
(我有时就不了解,一个程序员的收入,买一些书就那么小心呢?呵呵,收入都作什么去了??:))
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.packtpub.mmj.restsample</groupId>
    <artifactId>restsample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>restsample</name>
    <description>com.packtpub.mmj.restsample</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
Calculation.java
package com.packtpub.mmj.restsample.model;
import java.util.List;
public class Calculation {
    String funciton;
    private List<String> input;
    private List<String> output;
    public Calculation(List<String> input, List<String> output, String function) {
        this.funciton = function;
        this.input = input;
        this.output = output;
    }
    public String getFunciton() {
        return funciton;
    }
    public void setFunciton(String funciton) {
        this.funciton = funciton;
    }
    public List<String> getInput() {
        return input;
    }
    public void setInput(List<String> input) {
        this.input = input;
    }
    public List<String> getOutput() {
        return output;
    }
    public void setOutput(List<String> output) {
        this.output = output;
    }
}
CalculationController.java
package com.packtpub.mmj.restsample.resources;
import com.packtpub.mmj.restsample.model.Calculation;
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/calculation")
public class CalculationController {
    private static final String PATTERN = "^-?+\\d+\\.?+\\d*$";
    @RequestMapping("/power")
    public Calculation pow(@RequestParam(value="base") String b, @RequestParam(value="exponent") String e) {
        List<String> input = new ArrayList<String>();
        input.add(b);
        input.add(e);
        List<String> output = new ArrayList<String>();
        String powValue = "";
        if (b!=null && e!=null && b.matches(PATTERN) && e.matches(PATTERN)) {
            powValue = String.valueOf(Math.pow(Double.valueOf(b), Double.valueOf(e)));
        } else {
            powValue = "input is error";
        }
        output.add(powValue);
        return new Calculation(input, output, "power");
    }
    @RequestMapping(value="/sqrt/{value:.+}", method=GET)
    public Calculation sqrt(@PathVariable(value="value") String aValue) {
        List<String> input = new ArrayList<String>();
        input.add(aValue);
        List<String> output = new ArrayList<String>();
        String sqrtValue = "";
        if (aValue!=null && aValue.matches(PATTERN) ) {
            sqrtValue = String.valueOf(Math.sqrt(Double.valueOf(aValue)));
        } else {
            sqrtValue = "input is error";
        }
        output.add(sqrtValue);
        return new Calculation(input, output, "sqrt");
    }
}
RestsampleApplication.java
package com.packtpub.mmj.restsample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class RestsampleApplication {
    public static void main(String[] args) {
        SpringApplication.run(RestsampleApplication.class, args);
    }
}
输出:


随手看的一本书《java微服务》,测试成功了其中的第一个样例的更多相关文章
- 从成本角度看Java微服务
		近年来,微服务因其良好的灵活性和伸缩性等特点备受追捧,很多公司开始采用微服务架构或将已有的单体系统改造成微服务.IBM也于近日开源了轻量级Java微服务应用服务器 Open Liberty .但是采用 ... 
- 现如今,最热门的13个Java微服务框架
		曾经的 服务器领域 有许多不同的芯片架构???有哪些芯片架构???和操作系统???,经过长期发展,Java的“一次编译,到处运行”使得它在服务器领域找到一席之地,成为程序员们的最爱. 本文,我们将和大 ... 
- Java微服务 vs Go微服务,究竟谁更强!?
		前言 Java微服务能像Go微服务一样快吗? 这是我最近一直在思索地一个问题. 去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上,Mark Nels ... 
- Java微服务框架一览
		引言:本文首先简单介绍了微服务的概念以及使用微服务所能带来的优势,然后结合实例介绍了几个常见的Java微服务框架. 微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大.更复杂的应用程序,而这 ... 
- 85道Java微服务面试题整理(助力2020面试)
		微服务 面试题 1.您对微服务有何了解? 2.微服务架构有哪些优势? 3.微服务有哪些特点? 4.设计微服务的最佳实践是什么? 5.微服务架构如何运作? 6.微服务架构的优缺点是什么? 7.单片,SO ... 
- Java微服务对UTC时间格式的处理
		一.背景 先说一下为什么要使用UTC时间.开发一个全球化的系统,服务端(Java微服务)集中部署在同一个地方,用户在全球通过浏览器.手机客户端访问.不同地区的时区是不一样的,同一个时间戳,不同的用户看 ... 
- Java微服务(二):服务消费者与提供者搭建
		本文接着上一篇写的<Java微服务(一):dubbo-admin控制台的使用>,上篇文章介绍了docker,zookeeper环境的安装,并参考dubbo官网演示了dubbo-admin控 ... 
- Java微服务(二):负载均衡、序列化、熔断
		本文接着上一篇写的<Java微服务(二):服务消费者与提供者搭建>,上一篇文章主要讲述了消费者与服务者的搭建与简单的实现.其中重点需要注意配置文件中的几个坑. 本章节介绍一些零散的内容:服 ... 
- CODING DevOps 系列第五课:微服务测试——微服务下展开体系化的微服务测试
		微服务测试的痛点与挑战 这张图可以形象地展示单体服务和微服务的对比,单体应用就像左边巨大的集装箱,软件模块和应用都包括其中:而微服务就像是由一个小集装箱组成,微小的服务组成一个庞大.完整的系统.单体服 ... 
随机推荐
- Hbase物理存储
			物理模型 每个column family存储在HDFS上的一个单独文件中,空值不会被保存. Key 和 Version number在每个column family中均有一份: HBase为每个值维护 ... 
- (A)eclipse搭建springboot项目入门
			网上许多资料都是用idea的,但是我个人用eclipse习惯了,所以就在eclipse里面自己尝试着写了一个hello. 然而项目建好后却迟迟不能访问!!!网上搜了许多资料都不靠谱! 虽然最后能看到h ... 
- python语法root=Tkinter.Tk()
			1. Tkinter 是一个python模块,是一个调用Tcl/Tk的接口,它是一个跨平台的脚本图形界面接口.Tkinter不是唯一的python图形编程接口,但是是 其中比较流行的一个.最大的特点是 ... 
- C#冒泡算法复习
			C#冒泡算法复习 冒泡算法的意思:每一趟找到一个最小或最大的数放到最后面,比较总数的n-1次(因为比较是2个双双比较的) 第一层循环表示进行比较的次数,总共要比较(数的)-1次 (因为比较是2个双双比 ... 
- angular 模块化之directive
			通过使用directive使页面模块化.需要哪部分直接调用即可.原本这些操作需要后端配合,现在前端即可.将原本的html代码拆为不同的模块,然后通过directive衔接加载到主页面中.首先页面通过d ... 
- DOS程序员手册(九)
			第14章参考手册概述 本书余下的章节将向读者们介绍BIOS.DOS各种各样API函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源 ... 
- USACO Section1.3 Mixing Milk 解题报告
			milk解题报告 —— icedream61 博客园(转载请注明出处)----------------------------------------------------------------- ... 
- python基础实践(二)
			-*-越简单越快乐-*-# -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_1 = "python中的整数运算"Method_ ... 
- C++树的建立和遍历
			#include<iostream.h> typedef char TElemtype; typedef struct Btree { TElemtype data; struct Btr ... 
- C# Socket通信的服务器与客户端
			客户端代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ... 
