ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring Boot深度课程系列

2020-02-21 21:38:19  阅读:200  来源: 互联网

标签:parent spring boot Boot application 课程 Spring org


Spring Boot深度课程系列
在这里插入图片描述
02第一个Spring Boot应用程序
1、版本要求
集成开发环境:IntelliJ IDEA 2017.2.1 ,Spring Boot 版本:2.2.42、
2、步骤介绍

3、编写Helloworld,参照Spring MVC的写法
A)在chapter01文件夹下创建包controller,创建类HelloController.
B)代码如下
package com.java.chapter01.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return “Hello,Spring Boot!”;
}
}
C)启动工程,并测试

D)浏览器输入:http://localhost:8080/hello

E)对于parent的理解:
我们回忆一下,在我们创建工程的时候添加了一个Spring Web依赖。然后我们打开pom.xml文件,会发现有一段如下的配置依赖。

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

org.springframework.boot
spring-boot-starter-parent
2.2.4.RELEASE


com.java
chapter01
0.0.1-SNAPSHOT
chapter01
Demo project for Spring Boot

<java.version>1.8</java.version>



org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-test
test


org.junit.vintage
junit-vintage-engine







org.springframework.boot
spring-boot-maven-plugin




很显然,我们创建Spring Boot应用程序就是在parent中添加spring-boot-starter-parent。如果要配置web服务就在dependencies中添加spring-boot-starter-web的依赖。其实添加其他服务,也类似如此添加依赖。依赖的名称一般都是spring-boot-starter-xxx,这样就可以了。
下面我们针对parent进行进一步的研究。如下图点击进入

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

org.springframework.boot
spring-boot-starter-parent
2.2.4.RELEASE


//其余省略…
在spring-boot-starter-parent-2.2.4.RELEASE.pom中,对于关键部分分别进行解读。

org.springframework.boot
spring-boot-dependencies
2.2.4.RELEASE
…/…/spring-boot-dependencies

这说明spring-boot-starter-parent进一步依赖spring-boot-dependencies,等会对spring-boot-dependencies再进行研究.

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<resource.delimiter>@</resource.delimiter>
<maven.compiler.source>java.version</maven.compiler.source><project.build.sourceEncoding>UTF8</project.build.sourceEncoding><maven.compiler.target>{java.version}</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>java.version</maven.compiler.source><project.build.sourceEncoding>UTF−8</project.build.sourceEncoding><maven.compiler.target>{java.version}</maven.compiler.target>

上面的内容依次是如下含义
1)定义了工程报告的输出编码为UTF-8
2)java的版本是1.8.
3)由于application.properties和application.yml文件接受Spring样式占位符 $ {…} ,因此 Maven 过滤更改为使用 @ … @ 占位符,当然开发者可以通过设置名为 resource.delimiter 的Maven 属性来覆盖 @ … @ 占位符。
4)Java编译的版本引用java的版本,所以也是1.8
5)工程构建的源码的编码是UTF-8
6)maven编译后的目标的编码是1.8


true
basedir/src/main/resources</directory><includes><include>/application.yml</include><include>/application.yaml</include><include>/application.properties</include></includes></resource><resource><directory>{basedir}/src/main/resources</directory> <includes> <include>**/application*.yml</include> <include>**/application*.yaml</include> <include>**/application*.properties</include> </includes> </resource> <resource> <directory>basedir/src/main/resources</directory><includes><include>∗∗/application∗.yml</include><include>∗∗/application∗.yaml</include><include>∗∗/application∗.properties</include></includes></resource><resource><directory>{basedir}/src/main/resources

/application*.yml
/application*.yaml
**/application*.properties



这里定义了自动化的资源过滤,当filtering为true的时候来表示资源文件中的占位符是否需要被profiles中的属性动态替换,true为需要替换。上面是说打包的时候会把.yml和.yaml以及.properties文件打包的目标中。



//省略…



这里是插件的统一管理配置,这样我们在工程中如果时候插件的时候引用插件即可,不需要再写具备的版本号。
最后点击 spring-boot-dependencies,进入spring-boot-dependencies-2.2.4.RELEASE.pom文件,可以看到定义了很多依赖的jar的版本和利用dependencyManagement对依赖进行了统一的管理。在改节点中定义的依赖,我们后面在使用的时候可以直接使用改依赖,不需要指定版本号,这样在多模块程序中可以做到版本的统一,避免版本不一致带来各种问题。
但是并非所有的公司都需要这个 parent ,有的时候,公司里边会有自己定义的 parent ,我们的 Spring Boot 项目要继承自公司内部的 parent ,这个时候该怎么办呢?一个简单的办法就是我们自行定义 dependencyManagement 节点,然后在里边定义好版本号,再接下来在引用依赖时也就不用写版本号了,像下面这样:



org.springframework.boot
spring-boot-dependencies
2.2.4.RELEASE
pom
import



这样写之后,依赖的版本号问题虽然解决了,但是关于打包的插件、编译的 JDK 版本、文件的编码格式等等这些配置,在没有 parent 的时候,这些统统要自己去配置。后面我们在项目中会带着大家尝试使用,这里知道就可以了。

richiade_wang 发布了2 篇原创文章 · 获赞 0 · 访问量 14 私信 关注

标签:parent,spring,boot,Boot,application,课程,Spring,org
来源: https://blog.csdn.net/u012177678/article/details/104435327

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有