(二)Spring Boot 官网文档学习之入门
Spring Boot 是什么
Spring Boot
是基于 Spring
的应用程序,对 Spring
和 一些第三方库进行封装,便于程序员快速创建可以单独运行的项目;
官网重点标识:绝对没有代码生成,也不需要XML配置。
从这,我们也可以看出 ,Spring Boot
是的一大目标就是解决以前 Spring
的那些繁琐的配置的 ;
就记住是一个更牛,更厉害的框架 ;
系统要求
我使用的 Spring Boot
版本是 Spring Boot 2.1.3.RELEASE
;
要求:
JDK8 +
Maven 3.3+
否则下面安装将会失败;
Servlet 容器
Spring Boot 内置了 Tomcat
,目前我使用的版本 2.1.3 CURRENT
,内置的 Tomcat
版本是 9.0
;
当然也可以将 Spring Boot
项目打包发布到 Servlet 3.1+
的服务器上 ;
Maven方式安装Spring Boot
pom
文件 :
<?xml version =“1.0”encoding =“UTF-8”?>
<project xmlns = “http://maven.apache.org/POM/4.0.0” xmlns:xsi = “http://www.w3 .org / 2001 / XMLSchema-instance“
xsi:schemaLocation = ”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd“ >
<modelVersion> 4.0.0 </modelVersion>
<groupId> com.example </groupId>
<artifactId> myproject </artifactId>
<version> 0.0.1-SNAPSHOT </version>
<! - 继承默认值为Spring Boot - >
<parent>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-parent </artifactId>
<version> 2.1.3.RELEASE < /version>
</parent>
<!-- 添加Web应用程序的典型依赖项 - >
<dependencies>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-web </artifactId>
</dependency>
</依赖>
<! - 打包为可执行jar ,可选插件,只是打包,不影响执行 - >
<build>
<plugins>
<plugin>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-maven-plugin </artifactId>
</plugin >
</plugins>
</ build>
</project>
这里使用了 parent
标签引入 spring-boot-starter-parent
,是使用 Spring Boot
的一个好方法,但是有时候,可能需要从不同的父级 pom
继承,或者需要使用公司的标准父级pom
;
或者不想使用 spring-boot-starter-parent
默认配置,它是一个特殊的启动器,,可以使用下面的方式进行特殊的配置 ;
添加如下依赖项,替换掉 parent
标签:
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后你想覆盖掉谁,你就在 <dependencies>
里面写出来,但是要写在 org.springframework.boot
前面,以进行属性的覆盖,比如下面想要使用Spring Data
的另外一个版本:
<dependencyManagement>
<dependencies>
<!-- 覆盖Spring Boot提供的Spring Data版本系列 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Fowler-SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
编写第一个 Spring Boot 项目
pom
文件,就使用上面提到的默认的就好了;
编写一个 java
类:
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
首先是 @RestController
注解,是一个构造型注解,用于告诉阅读代码的人以及 Spring
这是一个处理器;
@RequestMapping("/")
不是什么新鲜注解了,就不用说了;
重点说下 @EnableAutoConfiguration
这是一个新注解,它用于告诉 Spring Boot
进行猜测你想要什么类型的 Spring
配置,猜测的根据是你在 POM
文件添加哪些 Jar
包配置,比如我们这里仅仅添加了 spring-boot-starter-web
:
<!-- 添加Web应用程序的典型依赖项 - >
<dependencies>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-web </artifactId>
</dependency>
</依赖>
那么,Spring Boot
将添加 Tomcat
SpringMvc
进来,并进行相应的 Spring
配置,方便的很啊,这也是为啥 Spring Boot
不需要我们自己配置 Tomcat
的原因;
最后的 main()
方法,是启动入口,都是一些 Spring Boot
的非必需了解知识了,只要记住,传入两个参数,本class类
and
main方法参数
;
最后启动,在浏览器里面输入 localhost:8080
即可看到 Hello World!
;
(二)Spring Boot 官网文档学习之入门的更多相关文章
- (五)Spring Boot官网文档学习
文章目录 SpringApplication SpringApplication 事件 `ApplicationContext ` 类型 访问传递给 `SpringApplication` 的参数 A ...
- (四)Spring Boot官网文档学习
文章目录 关于默认包的问题 加载启动类 配置 Bean管理和依赖注入 @SpringBootApplication Developer Tools 关于 Developer Tools 的一些细节 原 ...
- (三)Spring Boot 官网文档学习之默认配置
文章目录 继承 `spring-boot-starter-parent` 覆盖默认配置 启动器 原文地址:https://docs.spring.io/spring-boot/docs/2.1.3.R ...
- Spring Security 官网文档学习
文章目录 通过`maven`向普通的`WEB`项目中引入`spring security` 配置 `spring security` `configure(HttpSecurity)` 方法 自定义U ...
- Spring3.0官网文档学习笔记(二)
1.3 使用场景 典型的成熟的spring web应用 spring使用第三方框架作为中间层 远程使用场景 EJB包装 1.3.1 依赖管理.命名规则(包) spring-*.jar *号代表 ...
- Spring3.0官网文档学习笔记(八)--3.4.3~3.4.6
3.4.3 使用depends-on 使用depends-on能够强制使一个或多个beans先初始化,之后再对这个bean进行初始化. 多个bean之间用","." ...
- Spring3.0官网文档学习笔记(一)
Part 1 Spring框架概述 Spring是模块化的,在应用中仅仅须要引入你所须要用到的模块的jar包,其余的jar包不用引入. spring框架支持声明式的事务管理,通过RMI或web ser ...
- Spring3.0官网文档学习笔记(七)--3.4.2
3.4.2 依赖与配置的细节 3.4.2.1 Straight values (primitives, Strings, and so on) JavaBeans PropertyE ...
- Spring3.0官网文档学习笔记(四)--3.1~3.2.3
3.1 Spring IoC容器与Beans简单介绍 BeanFactory接口提供对随意对象的配置: ApplicationContext是BeanFactory的子接口.整合了Sp ...
随机推荐
- 【CSP模拟赛】凤凰院凶真(最长公共上升子序列)
题目描述 α世界线.凤凰院凶真创立了反抗SERN统治的组织“瓦尔基里”.为了脱离α线,他需要制作一个世界线变动率测量仪. 测量一个世界线相对于另一个世界线的变动率,实质上就是要求出这两个世界线的最长公 ...
- ACL终极详解
- 面试题 int(3) int(10) 区别
1.MySQL 中 int(3) int(10) 区别 答案 存储大小并无差异,只是不足位数的时候,左边补0. ###补充知识点 创建数据库表时,加zerofill ,可以看出效果.mysql 默认 ...
- 深度学习面试题27:非对称卷积(Asymmetric Convolutions)
目录 产生背景 举例 参考资料 产生背景 之前在深度学习面试题16:小卷积核级联卷积VS大卷积核卷积中介绍过小卷积核的三个优势: ①整合了三个非线性激活层,代替单一非线性激活层,增加了判别能力. ②减 ...
- 似然函数 | 最大似然估计 | likelihood | maximum likelihood estimation | R代码
学贝叶斯方法时绕不过去的一个问题,现在系统地总结一下. 之前过于纠结字眼,似然和概率到底有什么区别?以及这一个奇妙的对等关系(其实连续才是f,离散就是p). 似然函数 | 似然值 wiki:在数理统计 ...
- 两个Double类型相减出现精度丢失问题
两个Double类型相减出现精度丢失问题 720.50-279.5=440.099999999 而不是440.1 解决方法,将数据库中的类型改为decimal类型,小数精确到2位
- matplotlib显示黑白灰度图像颜色设置
对于黑白灰度图像(矩阵) 1. 默认使用伪彩色拉升 2 cmap参数为 binary,可能导致颜色反转 3. cmap = gray,same color as origin, that is, wh ...
- 使用cmi工具连接服务器远程装机exsi
使用cmi工具连接服务器远程装机exsi 网宿机房有两台服务器磁盘坏掉了,后面换了磁盘需要重新初始化系统 访问:http://192.168.48.133/cgi/url_redirect.cgi?u ...
- 深度学习:21天实战caffe学习资源-4-环境安装
使用anaconda3环境下的python2.7, 机器macos mojave 10.14 1.安装Xcode 首先现在app store中安装Xcode: 不然会有” framework not ...
- vscode片段
参考资料 https://blog.csdn.net/maokelong95/article/details/54379046 "狂客注释": { "prefix&quo ...