Spring Boot 学习1-创建Spring Boot应用
如果使用Maven, 确保先安装好Maven再继续。
创建POM文件
在这里有两种方式:
- 继承Spring Boot parent的pom。
- 不继承。
继承Spring Boot pom
|
|
此种方式会约定Spring Boot 依赖的版本,它最终继承自spring-boot-dependencies模块,此模块规定了各种依赖的版本号,我们只需要引入groupId 和artifactId就可以了。而且还引入了一些maven的插件,可以让我们用maven的方式mvn spring-boot:run来启动我们的应用。当然如果你用了强大的IDEA,直接可以像普通的应用程序一样启动。
不继承Spring Boot parent
因为实际开发过程中我们可能会有自己的parent,要开发的功能只是项目中一个模块,这时候就没法使用spring boot parent。这时只需要将spring boot dependencies引入到我们的项目中来就可以了。
|
|
然后我们还是可以在我们的项目中声明groupdId和artifactId来引入依赖。如果需要使用spring boot 的maven插件来启动,则需要手动引入.
|
|
添加依赖
上面也提到了,如果你继承了spring boot parent,或者引入了spring boot dependencies模块,那么spring boot 就帮你管理了常用的依赖,你可以在引入的时候省略掉版本号。使用这种方式的好处是,spring boot已经帮你考虑了兼容性的问题。
另外,spring boot 引入了starter的概念。其实就是帮你将相关的依赖整理在一起,你只需要依赖这个starter就可以引入所需要的所有依赖。另外就是starter会帮你做一些自动配置,这个后面会讲到。例如我们要开发web项目,只需要引入spring-boot-starter-web依赖就可以了。
|
|
我们可以看一下引入了哪些依赖
|
|
主要是spring web, tomcat等web相关的jar。可以看出来这种方式会相比我们之前的开发方式方便快捷许多。spring boot 提供了一系列的starter,当然如果这些还不能满足你的话,完全可以开发自己的starter,只需要遵循spring boot提供的命名规范就可以了。后面会讲到如何开发starter。
编写代码
在src/main/java目录中新建一个简单的类
|
|
这个类中指定了我们的spring boot 的入口main函数,这个类就是下步中的main-class。
类上有@EnableAutoConfiguration注解,这个注解会告诉Spring Boot 自动该应用,具体做了哪些配置,以后再说。比如说我们添加了web的starter,那么Spring Boot 会认为我们在开发一个web应用,那么会创建一个web applicationContext。自动配置和starter没有完全的绑定有关系,如果把相关的依赖都单独加进来,而不使用starter, Spring Boot 也会尽量做好自动配置工作。另外两个注解@RestController和@RequestMapping("/")是Spring MVC的。
main方法里面调用SpringApplication.run()方法,将我们的主配置类传递给SpringApplication,还可以通过args参数将控制台参数传递进去。
运行我们的程序
Spring Boot 要求编绎环境为1.8以上,可以在maven pom中设置。
|
|
- 使用maven 插件来运行
mvn spring-boot:run。 - 在IDEA中如果不能自动创建spring boot运行配置,可以手动创建。如图所示

添加的时候选择spring boot, 主要是指定main class和module路径 。可以将应用添加到spring boot run dashboard中,方便我们管理 spring boot应用。dashboard 如图所示 
打包程序
可以将spring boot 应用打包为一个独立的jar,然后上传到服务器中运行。
|
|
如果没有继承spring boot parent,那么需要自己配置一下spring boot maven 插件,不然无法打包成spring boot jar。
|
|
如果继承了spring boot parent,只需要引入spring boot maven plugin即可,不需要做如上配置。
|
|
运行的时候执行命令即可。
|
|
Spring Boot 学习1-创建Spring Boot应用的更多相关文章
- Spring入门案例 idea创建Spring项目
spring入门案例 idea创建spring项目 Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其 ...
- [转]通过Spring Boot三分钟创建Spring Web项目
来源:https://www.tianmaying.com/tutorial/project-based-on-spring-boot Spring Boot简介 接下来我们所有的Spring代码实例 ...
- 用spring tool suite插件创建spring boot项目时报An internal error occurred during: "Building UI model". com/google/common/
本文为博主原创,未经允许不得转载 在用spring tool suite创建spring boot项目时,报一下异常: 查阅很多资料之后发现是因为装的spring tool suite的版本与ecli ...
- 【Spring Boot学习之三】Spring Boot整合数据源
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.Spring Boot整合Spring JDBC 1.pom.xml <project xmlns=&quo ...
- spring boot 之 如何创建spring boot项目
创建spring boot的方式有非常多,今天我们使用maven来进行创建spring boot项目,因为maven使用的非常广泛,也很好用,很多IDE也都支持maven. 1 创建maven项目 1 ...
- 【Spring Boot学习之六】Spring Boot整合定时任务&异步调用
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2一.定时任务1.启动类添加注解@EnableScheduling 用于开启定时任务 package com.wjy; i ...
- 【Spring Boot学习之四】Spring Boot事务管理
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.springboot整合事务事务分类:编程事务.声明事务(XML.注解),推荐使用注解方式,springboot默 ...
- 【Spring Boot学习之一】Spring Boot简介
环境 Java1.8 Spring Boot 1.3.2 一.Spring Boot特点1.使用java运行项目,内置tomcat,无需外部容器:2.减少XML配置,使用properties文件和注解 ...
- spring揭密学习笔记(1) --spring的由来
1.spring起源于在EJB暴露出各种严重问题的情况应运而生. Spring是于2003年兴起的一个轻量级的Java开发框架, Spring倡导一切从实际出发,以实用的态度来选择适合当前开发场景的解 ...
随机推荐
- 时间API
1. 时间API 我们的时间在java里是long类型的整数,这个整数称之为时间戳(也叫格林威治时间),即从1970-01-01到现在为止所经过的毫秒数,单有这个时间戳是不能准确表达世界各地的时间,还 ...
- 你必须知道的基本位运算技巧(状压DP、搜索优化都会用到)
一. 位操作基础 基本的位操作符有与.或.异或.取反.左移.右移这6种,它们的运算规则如下所示: 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 ...
- 2019ICPC 上海网络赛 L. Digit sum(二维树状数组+区间求和)
https://nanti.jisuanke.com/t/41422 题目大意: 给出n和b,求1到n,各数在b进制下各位数之和的总和. 直接暴力模拟,TLE.. 没想到是要打表...还是太菜了. # ...
- sklearn包
sklearn官方学习资料 https://scikit-learn.org/stable/user_guide.html 1 Supervised learning监督学习 1.1 线性模型 1.2 ...
- Python2 和 Python3的区别 更新中
py2和py3的区别 1.默认解释器编码 py2: ascii py3: utf-8 2.输入 输出 输入 py2: name = raw_input('请输入你的姓名:') py3: name = ...
- ubuntu Python 升级
安装时ubuntu提示: DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the last one supp ...
- 高级I/O
1.阻塞问题的几种解决模型 1.1 非阻塞模型:类似于死循环,需要适当加休眠,防止cpu占用太高:效率较低 1.2 线程异步:效率最高的一种解决方案 1.3 I/O多路转接与复用 select(低) ...
- Kali-tools
title date tags layout Ubuntu Update Kali-Tools 2018-09-01 Linux post 创建shell文件 vim update-kali-sour ...
- 3)Framework创建思路
- 学习python-20191107
一.导入模块的两种方式 方式1:import 包名.模块名 [ as 别名]方式2:from 包名 import 模块名 from 包名.模块名 import 变量|函数|类 # ...