学习springboot2.x系列之一:测试开发springboot-demo程序并发布在pivotal的cloud foundry paas云平台中

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firehadoop/article/details/84789483

一、微服务容器化开发必由之路

    几年前做过基于springmvc+spring+mybatis的开发工作,当时的感觉就是配置文件很多,开发大部分精力都用于改配置文件去了。没有把主要精力放在业务上,现在流行基于容器技术的微服务开发,springboot成了微服务开发的主要抓手。

Spring Boot是Spring的常规配置解决方案,用于创建可以“运行”的独立的,生产级的基于Spring的应用程序。[22]它预先配置了Spring对Spring平台和第三方库的最佳配置和使用的“见解视图”,因此您可以尽量少开始。大多数Spring Boot应用程序只需要很少的Spring配置。特征:

  • 创建独立的Spring应用程序
  • 直接嵌入Tomcat或Jetty(无需部署WAR文件)
  • 提供自以为是的“入门” 项目对象模型(POM)以简化您的Maven配置
  • 尽可能自动配置Spring
  • 提供生产就绪功能,例如指标,运行状况检查和外部化配置
  • 绝对没有代码生成,也不需要XML配置

二、开发工具设置

1、开发环境设置

a、安装java1.8以上开发环境,springboot需要jdk1.8以上环境支撑;

b、安装最新版maven,并设置好本地maven仓库;

2、集成开发工具下载

强烈建议下载安装最新版的idea,我之前用的是2017年2月版idea出现了很多莫名其妙的问题,最后卸载重新安装了最新版的一切正常。

选择下载安装Ultimate版本,2018年3月目前是最新版,大概有500多M。下面是下载链接地址

https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows

3、IDEA的激活

这方面可以直接参考这位兄弟的文章,讲解的非常详细

https://blog.csdn.net/tiantang_1986/article/details/81346558

三、通过IDEA创建一个springboot应用

1、打开IDEA程序创建一个应用

2、选择打包模式为war包,因为后面需要创建的文件包括jsp文件,jsp文件必须通过war包才能发布

 3、选择依赖组件,aop与web

 4、进入项目后在main目录下创建webapp/WEB-INF/jsp目录,其它的目录结构与文件都是IDEA自动生成的

5、 在项目的maven依赖文件pom.xml文件中加入对JSP和JSTL的支持

<!--jsp页面使用jstl标签-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

<!--用于编译jsp-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

依赖范围就是用来控制依赖和三种classpath(编译classpath,测试classpath、运行classpath)的关系,Maven有如下几种依赖范围:

  • compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型的例子是spring-code,在编译、测试和运行的时候都需要使用该依赖。
  • test: 测试依赖范围。使用次依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此依赖。典型的例子是Jnuit,它只有在编译测试代码及运行测试的时候才需要。
  • provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。

6、修改项目的启动端口与spring-mvc关于返回文件的路径及文件类型

application.properties

server.port=8090
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

7、在com.springboot.webjsp.main包下面创建一个新类,用于spring-mvc的控制器

package com.springboot.webjsp.main;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {

    @RequestMapping("/index")
    public String index(){
        return "index";
    }

}

注释:这段代码的主要用途是截获用户的url请求并将其转换到本地的jsp文件资源进行解析处理,比如用户传入的url是/index,会自动将这个url解析为/WEB-INF/jsp/index.jsp文件。

8、在/webapp/WEB-INF/jsp/目录下创建一个index.jsp文件,用于接应用户的/index访问请求

<%--
  Created by IntelliJ IDEA.
  User: adminwl
  Date: 2018/12/4
  Time: 15:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>spring boot jsp test</title>
</head>
<body>
<h1>这是一个spring boot的jsp测试页面</h1>
</body>
</html>

四、通过maven命令行编译运行项目测试

1、通过命令行进入项目保存的本地磁盘目录

cd G:\projectsource\webjsp

2、执行mvn编译打包命令

mvn clean package

3、查看编译打包结果

4、通过mvn直接打包执行

mvn clean spring-boot:run

通过上面的run命令可以在打包完成后直接运行war包

通过浏览器直接输入http://localhost:8090/index可以直接访问该项目 

五、通过IDEA图形化界面编译运行测试项目

1、打开项目主执行程序选择debug模式运行

2、观察控制窗口的输出信息

 3、最后在通过浏览器直接输入http://localhost:8090/index可以直接访问该项目,效果与通过maven打包后的访问测试效果一样。

至此,已经完成了通过idea开发工具在本地环境中的springboot开发任务,如何把这个成果发布到互联网上呢?,下面跟我一起完成把成果发布到互联网的免费云服务中吧。。。。。

六、注册一个pivotal云平台账号

1、在这个地址下创建一个自己的账号

https://account.run.pivotal.io/z/uaa/sign-up

2、其中的电子邮件地址最好使用国外的

3、创建成功后需要进入邮箱激活你刚刚创建的账号

4、登陆成功后显示成功界面

5、 在本地计算机上下载安装一个cf可执行程序,cf应用程序支持mac 、linux与windows 32/64

我的计算机是win10-64位,所以我下载了一个windows64的安装文件

https://cli.run.pivotal.io/stable?release=windows64&source=github

6、安装后在本地计算机上执行下面的命令完成项目发布工作

首先执行cf help查看cf软件安装是否成功

 7、进入本地项目目录

cd G:\projectsource\webjsp

执行登陆命令

cf login -a https://api.run.pivotal.io

 

email输入你申请账号时登记的即可,后面的密码输入你账号的密码。

8、手工编辑生成manifest.yml文件

在项目当前目录上手动编辑生成文件manifest.yml文件,文件内容如下

applications:
- name: myTestSpringbootJsp
  path: target/webjsp-0.0.1-SNAPSHOT.war
  memory: 768M
  instances: 1
  random-route: true

9、向云端上传项目文件

cf push

 

五、验证云端发布项目

1、paas云平台管理后台查看项目状态

浏览器中直接输入:https://mytestspringbootjsp-agile-numbat.cfapps.io/

 2、pivotal的云服务非常给力,很方便的实现对云业务应用的弹性伸缩扩展

3、通过cf的命令行检查项目运行状态

查看项目运行状态,包括运行状态,cpu占用,内存资源占用及硬盘资源占用情况。

cf app app_name

通过cf logs app_name --recent 查看项目当前运行日志情况

 使用cf scale app_name -i num 命令将项目的对外服务实例数降为1,或者可以根据实际资源占用情况升为n,紧跟着使用cf app 命令查看实例数的改变情况,根据实际观测cf的水平伸缩时间大概在5秒以内完成,非常迅速。

s

总结:

学习springboot开发是走向基于容器的微服务开发之路,其中PCF的public cloud是一个非常出色的原生支持自家springboot的很好的免费的云平台,我们可以非常方便的将自己开发的容器微服务发布上去。

猜你喜欢

转载自blog.csdn.net/firehadoop/article/details/84789483