1、基本概念

Spring的出现对于企业级应用来说是一个福音,它让企业级应用开发更加地简单。但是随着Spring的不断发展,它也慢慢变得越来越重。即使apache出品的maven工具能够使得项目创建、管理更加地轻便,但对于开发人员来说依旧存在负担:

1)不得不处理xml等配置文件;

2)不得补处理各种依赖包;

而Spring的作者们也意识到了这一点,于是Springboot出现了。

Springboot出现的意义就在于快速创建并运行一个应用程序,如果之前我们需要十分钟去创建一个简单的spring项目,那么现在我们只需要十几秒钟就能创建一个springboot的应用程序。

2、环境

本文编写的时候,springboot的稳定版本是:2.0.1;

它需要:

1)JDK1.8+;

2)maven3.2+或gradle4+;

3) spring framework 5.0.5.release;

开发工具使用:

1)intellij IDEA;

2) Spring tool suite(STS);

3、构建Spring应用

1)打开IDEA开发工具,默认带了STS套件;

2)new -> project -> Spring Initializer -> next -> 填写项目信息 -> 勾选web -> 填写项目名称和路径 -> finish

当maven处理完毕,一个简单的Springboot项目就已经构建好了。

4、测试

我们在类路径下编写一个controller

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class SampleController { @RequestMapping(value = "hello")
public String hello(){
return "Hello World";
}
}

运行main方法启动程序

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class SpringbootApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}

控制台上看到,我们在8080端口下tomcat运行成功了(备注:springboot2.0.1内置了tomcat8.5,servlet版本是3.1我们并不需要去配置本机的tomcat)

Tomcat started on port(s): 8080 (http) with context path ''
2018-04-14 22:06:26.584 INFO 16752 --- [main] cn.lay.SpringbootApplication: Started SpringbootApplication in 6.587 seconds (JVM running for 8.949)

在浏览器输入

http://localhost:8080/hello

显示

Hello World

一个简单的基于springboot的web应用程序就完成了

5、打为jar包运行

pom.xml 文件的打包声明为:

<packaging>jar</packaging>

打包插件为:

<!-- Package as a executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

我们运行maven的package命令,在编译目录下打包出了一个jar文件;

我们使用命令java -jar 文件名.jar 运行该jar文件(也可以直接使用IDEA开发工具运行)

运行成功以后,浏览器输入http://localhost:8080/hello测试;

最后使用ctrl + c 退出运行

最新文章

  1. ASP.NET(IIS)出现&quot;没有为请求类型&quot;GET&quot;找到 HTTP 处理程序&quot;
  2. 监听页面上的checkbox是否选中
  3. jquery右键菜单
  4. BT客户端实现 Peer协议设计
  5. xml提取
  6. -WEBKIT-USER-SELECT:NONE导致输入框无法输入
  7. Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存
  8. C#中窗体的互相访问
  9. Leetcode 190. Reverse Bits(反转比特数)
  10. 从打车软件你能想到多少?盈利模式?商机?大数据?移动互联网蛋糕?生活方式改变withApp?
  11. 汇编指令-MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)
  12. vue中keep-alive的用法
  13. API简介
  14. js 数组去重小技巧
  15. VB进行RGB分色
  16. git本地推送远程
  17. ansible系列7-mysql_user模块
  18. ngxs 状态管理器
  19. [py]python中的特殊类class type和类的两面性图解
  20. js小练习

热门文章

  1. Mysql数据操作《三》多表查询
  2. [Objective-C语言教程]循环语句(9)
  3. UIScrollView笔记
  4. 【转】C++ 类访问控制public/private/protected探讨
  5. 阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)
  6. JAVA将秒的总和转换成时分秒的格式
  7. docker 安装sentry
  8. [转] vagrant系列(2):使用Vagrantfile实现集成预安装
  9. (转)Go语言核心36讲之Go语言学习路线
  10. rocketmq的消息过滤-sql方式