Spring Boot继承了Spring Framework的强大,但却同时免去了Spring Framework繁杂的配置,而且其内置TomCat容器,使得web开发极为高效便捷。

此外,随着与云计算,集群等技术的成本不断下降并变得广为流行,微服务(Micro-Service)的概念也逐渐引申出来,我们可以将微服务看作是一个小程序,这个小程序是一个基本计算单元,实现了某一功能,该小程序往往还“自包含”了Http服务器(Self-Hosting)。这些特性使得小程序可以独立存在,部署极为方便。可以很容易的部署到各个计算节点上。说到这里,很多人发现NodeJS非常具备开发微服务的特性,然而,有了Spring Boot,使用Java语言一样可以方便开发出微服务,而且Java语言天生的强类型特性也使其保证了程序的健壮性。

下面给出一个简单的基于Spring Boot的程序,该程序非常简单,只有两个文件,主程序Application.Java和控制器DemoController.java。


Application.java

Application.java
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}


DemoController.java

@RequestMapping("/hello")
public String hello() {
    return "Hello World";
}


 

编译打包生成一个可执行jar包Application.jar,然后在命令行输入java -jar Application.jar启动该程序。打开浏览器,输入http://localhost:8080/hello即可看到该程序的输出

Untitled picture.png

可见,使用Spring Boot开发一个Web应用是多么的便捷啊,我们无需去配置搭建http服务器,无需配置搭建Java应用容器。一个JAR包即可“闯天下”。


如果我们开发了一个微服务,并打包成JAR,我们可以将它放到云上或者一个有网络的本地服务器上去运行。如何放在本地服务器上运行就不再赘述了,简言之,直接运行Java -jar XXX.jar即可实现微服务的部署。接下来我们就看看如果将这个JAR包部署到微软的Azure云服务上。

 

首先我们需要登陆到Azure去创建一个Web App。依次点击“Create a resource”,“Web + Mobile”,“Web App”

1.png



然后填写程序名称,选择订阅账号

2.png


创建完成后进入Web App配置界面,允许Git上传,并设置上传账号

3.png


进入Application settings开启Java支持

4.png


至此,我们完成了Web App的创建和配置,接下来我们就要开始部署我们的JAR包到云上了。

首先我们克隆云上的项目到本地,进入Overview,然后复制Git clone url。在命令行使用git clone http://xxx 克隆到本地。初始项目只有一个html文件和一个空的webapps目录。

5.png


拷贝我们的JAR 包到webapps里面,然后新建一个web.config文件在项目根目录

6.png


复制如下内容到web.config文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="%JAVA_HOME%\bin\java.exe"
        arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot;%HOME%\site\wwwroot\webapps\main.jar&quot;">
    </httpPlatform>
  </system.webServer>
</configuration>


 然后使用GIT命令添加,提交到云,至此,部署完成!接下来,我们打开浏览器,输入项目的网址https://XXXX.azurewebsites.net即可访问看到Hello World。