当我们通过 spring initializr 创建springboot项目时都会发现 spring-boot-starter-parent 的身影,那么他到底是干啥的呢?
这是 Spring Boot 的父级依赖,这样当前的项目就是 Spring Boot 项目了。spring-boot-starter-parent 是一个特殊的 starter,它用来提供相关的 Maven 默认依赖。使用它之后,常用的包依赖可以省去 version 标签。先来看 parent 的基本功能有哪些?
但是并非所有的公司都需要这个 parent ,有的时候,公司里边会有自己定义的 parent ,我们的 Spring Boot 项目要继承自公司内部的 parent ,这个时候该怎么办呢?一个简单的办法就是我们自行定义 dependencyManagement 节点,然后在里边定义好版本号,再接下来在引用依赖时也就不用写版本号了,像下面这样:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这样写之后,依赖的版本号问题虽然解决了,但是关于打包的插件、编译的 JDK 版本、文件的编码格式等等这些配置,在没有 parent 的时候,这些统统要自己去配置。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source> <!-- 源代码使用的JDK版本 -->
<target>11</target> <!-- 需要生成的目标class文件的编译版本 -->
</configuration>
</plugin>
</plugins>
</build>
maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。maven的默认编译使用的jdk版本貌似很低,使用maven-compiler-plugin插件可以指定项目源码的jdk版本,编译后的jdk版本,以及编码。
## 二、@SpringBootApplication
之前我们使用的是3个注解注解他们的main类。分别是@SpringBootConfiguration(这个注解的作用与@Configuration作用相同),@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。
@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。
我们只需要在 springboot 项目的 resources 文件夹下面创建一个 banner.txt 文件,springboot 启动的时候会去加载这个文件。
这里有几个定制banner的网站,文字、图片都可以秀起来,怎么秀就看你的骚操作了:
http://patorjk.com/software/taag
http://www.network-science.de/ascii/
http://www.degraeve.com/img2txt.php
? ? ? ? ? ? ? ? ?.-' _..`.
? ? ? ? ? ? ? ? ?/ ?.'_.'.'
? ? ? ? ? ? ? ? | .' (.)`.
? ? ? ? ? ? ? ? ;' ? ,_ ? `.
.--.__________.' ? ?; ?`.;-'
| ?./ ? ? ? ? ? ? ? /
| ?| ? ? ? ? ? ? ? /?
`..'`-._ ?_____, ..'
? ? / | | ? ? | |\ ? ?/ /| | ? ? | | \ ? / / | | ? ? | | ?\ ?/_/ ?|_| ? ? |_| ? \_|__\ ?|__\ ? ?|__\ ?|__\
在 springboot 项目中,可以内置Tomcat、Jetty、Undertow、Netty等容器,当添加了 spring-boot-starter-web
依赖之后,会默认使用 Tomcat 作为 web 容器。当我们需要对Tomcat进行配置的时候可以在 application.properties 配置文件中配置。
server.port=8084
server.error.path=/error
server.servlet.session.timeout=30m
server.servlet.context-path=/test01
server.tomcat.uri-encoding=utf-8
server.tomcat.max-threads=200
在JDK\bin下通过命令行生成数字证书,然后将文件复制到项目的根目录:
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore zhang.p12 -validity 365
然后在application.properties中配置
server.ssl.key-store=zhang.p12
server.ssl.key-alias=tomcathttps
server.ssl.key-store-password=123456
Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
特点:
配置 Jetty
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>
Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器。
特点:
配置 Undertow
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
</dependencies>
在使用 Spring Boot 的过程中,除了可以在 pom.xml 中配置一些内容外,一些项目相关的配置也可以在 application.properties 中通过配置来完成。
配置文件4个位置及优先级高→低:
YAML 是 "YAML Ain‘t markup language" 的缩写,是一种对人类设计友好的数据序列化语言,可以很好地与其它编程语言协同完成日常任务。它是JSON的一个严格超集。
基本规则:
在项目的开发中,有些配置文件在开发、测试或者生产等不同环境中可能是不同的,例如数据库连接、redis的配置等等。那我们如何在不同环境中自动实现配置的切换呢?Spring给我们提供了profiles机制,下面看看在Spring Boot中是如何使用Profiles功能的。
激活指定profile:
spring.profiles.active=dev
SpringBoot----01.SpringBoot基本配置
原文:https://www.cnblogs.com/zhangliuping/p/12070845.html