一、快速构建Springboot应用
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 退出运行
最新文章
- ASP.NET(IIS)出现";没有为请求类型";GET";找到 HTTP 处理程序";
- 监听页面上的checkbox是否选中
- jquery右键菜单
- BT客户端实现 Peer协议设计
- xml提取
- -WEBKIT-USER-SELECT:NONE导致输入框无法输入
- Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存
- C#中窗体的互相访问
- Leetcode 190. Reverse Bits(反转比特数)
- 从打车软件你能想到多少?盈利模式?商机?大数据?移动互联网蛋糕?生活方式改变withApp?
- 汇编指令-MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)
- vue中keep-alive的用法
- API简介
- js 数组去重小技巧
- VB进行RGB分色
- git本地推送远程
- ansible系列7-mysql_user模块
- ngxs 状态管理器
- [py]python中的特殊类class type和类的两面性图解
- js小练习
热门文章
- Mysql数据操作《三》多表查询
- [Objective-C语言教程]循环语句(9)
- UIScrollView笔记
- 【转】C++ 类访问控制public/private/protected探讨
- 阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)
- JAVA将秒的总和转换成时分秒的格式
- docker 安装sentry
- [转] vagrant系列(2):使用Vagrantfile实现集成预安装
- (转)Go语言核心36讲之Go语言学习路线
- rocketmq的消息过滤-sql方式