springboot文档_springboot文档中文版


SpringBoot的配置文件有哪几种格式?

SpringBoot属性和配置1. 在构建时自动扩展属性

springboot文档_springboot文档中文版springboot文档_springboot文档中文版


springboot文档_springboot文档中文版


springboot文档_springboot文档中文版


您可以使用现有的构建配置自动扩展它们,而不是硬编码在项目的构建配置中也指定的某些属性。这在 Men 和 Gradle 中都是可能的。

1.1. 使用 Men 自动扩展属性

您可以使用资源过滤从 Men 项目中自动扩展属性。如果使用spring-boot-starter-parent,则可以使用@..@占位符引用 Men 的“项目属性” ,如以下示例所示:

app.encoding=@project.build.sourceEncoding@

app.ja.version=@ja.version@

如果您不使用 starter parent,则需要在您的元素中包含以下元素pom.xml:

src/main/resources

true

您还需要在里面包含以下元素

org.apache.men.plugins

men-resources-plugin

2.7

@

false

useDefaultDelimiters如果您${placeholder}在配置中使用标准 Spring 占位符(例如),则 该属性很重要。如果该属性未设置为false,则构建可能会扩展这些属性。

1.2. 使用 Gradle 自动扩展属性

您可以通过配置 Ja 插件的processResources任务来自动从 Gradle 项目扩展属性,如以下示例所示:

processResources {

expand(project.properties)

}然后,您可以使用占位符来引用您的 Gradle 项目的属性,如以下示例所示:

app.name=${name}

app.description=${description}

2. 外化 SpringApplication 的配置

ASpringApplication具有 bean 属性设置器,因此您可以在创建应用程序时使用其 Ja API 来修改其行为。或者,您可以通过在spring.main.. 例如,在 中application.properties,您可能有以下设置:

spring.main.web-application-type=none

spring.main.banner-mode=off

那么 Spring Boot 横幅不会在启动时打印,应用程序也不会启动嵌入式 Web 。

外部配置中定义的属性会覆盖和替换 Ja API 指定的值,主要来源的显着例外。主要来源是提供给SpringApplication构造函数的那些:

import org.springframework.boot.Banner;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class MyApplication {

public static void main(String[] args) {

SpringApplication application = new SpringApplication(MyApplication.class);

application.setBannerMode(Banner.Mode.OFF);

application.run(args);

}}

或sources(…)a 的方法SpringApplicationBuilder:

import org.springframework.boot.Banner;

import org.springframework.boot.builder.SpringApplicationBuilder;

public class MyApplication {

public static void main(String[] args) {

new SpringApplicationBuilder()

.bannerMode(Banner.Mode.OFF)

.sources(MyApplication.class)

.run(args);

}}

鉴于上面的例子,如果我们有以下配置:

spring.main.sources=com.example.MyDatabaseConfig,com.example.MyJmsConfig

spring.main.banner-mode=console

实际应用程序将显示横幅(由配置覆盖)并使用三个来源作为ApplicationContext. 应用程序来源是:

MyApplication (来自代码)

MyDatabaseConfig (来自外部配置)

MyJmsConfig(来自外部配置)

3. 更改应用程序外部属性的位置

默认情况下,来自不同源的属性被添加到弹簧Environment以定义的顺序(参照“的features.html中的”“弹簧功能”部分的确切顺序)。

您还可以提供以下系统属性(或环境变量)来更改行为:

spring.config.name( SPRING_CONFIG_NAME): 默认application为文件名的根。

spring.config.location( SPRING_CONFIG_LOCATION):要加载的文件(例如类路径资源或 URL)。Environment为该文档设置了一个单独的属性源,它可以被系统属性、环境变量或命令行覆盖。

无论您在环境中设置什么,Spring Boot 始终application.properties按上述方式加载。默认情况下,如果使用 YAML,则扩展名为“.yml”的文件也会添加到列表中。

Spring Boot 会记录在该DEBUG级别加载的配置文件以及它在该级别未找到的候选文件TRACE。

Spring boot

如有不懂:请参阅Spring教育管理中心了解更多详情。

springboot快速入门及@SpringBootApplication注解分析

简单demo

使用 men 构建项目,现在稳定版本是1.5.4,个入门demo不是web项目,pom依赖如下:

实体 User 类:

配置类:

入口类 Application :

项目结构目录

启动程序,以 main 方法启动:

打印出正确的结果。

来分析一下流程,为何 Runnable 类, User , Map 会纳入spring容器。

首先我们分析的就是入口类 Application 的启动注解 @SpringBootApplication ,进入源码:

发现 @SpringBootApplication 是一个复合注解,包括 @ComponentScan ,和 @SpringBootConfiguration , @EnableAutoConfiguration 。

根据上面的理解,上面的入口类 Application ,我们可以使用:

使用 @ComponentScan 注解代替 @SpringBootApplication 注解,也可以正常运行程序。原因是 @SpringBootApplication 中包含 @ComponentScan ,并且 springboot 会将入口类看作是一个 @SpringBootConfiguration 标记的配置类,所以定义在入口类 Application 中的 Runnable 也可以纳入到容器管理。

看一个demo学会使用这些参数配置

在包下com.zhihao.miao.springboot定义一个启动应用类(加上@SpringBootApplication注解)

在com.zhihao.miao.beans包下定义一个实体类,并且想将其纳入到spring容器中,

启动启动类,打印结果如下:

说明Cat类并没有纳入到spring容器中,这个结果也如我们所想,因为@SpringBootApplication只会扫描@SpringBootApplication注解标记类包下及其子包的类(特定注解标记,比如说@Controller,@Serv,@Component,@Configuration和@Bean注解等等)纳入到spring容器,很显然MyConfig不在@SpringBootApplication注解标记类相同包下及其子包的类,所以需要我们去配置一下扫包路径。

修改启动类,@SpringBootApplication(scanBasePackages = "com.zhihao.miao"),指定扫描路径:

启动并打印:

当然使用@SpringBootApplication(scanBasePackageClasses = MyConfig.class),指定scanBasePackageClasses参数的value值是你需要扫描的类也可以,结果一样,不过如果多个配置类不在当前包及其子包下,则需要指定多个。

再看一个列子,

在上面的列子的相同包下(com.zhihao.miao.springboot)配置了People,并将其纳入到spring容器中(@Component),我们知道@SpringBootApplication注解会扫描当前包及其子包,所以People类会纳入到spring容器中去,我们需要将其排除在spring容器中,如何作?

可以使用@SpringBootApplication的另外二个参数(exclude或excludeName)

启动类,

启动并打印结果:

然后修改@SpringBootApplication配置,

很明显启动报错。使用@excludeName注解也可以。如下,

@SpringBootApplication(excludeName = {"com.zhihao.miao.springboot.People"})

参考文档:

Springboot1.5.4文档

Springboot整合springfox3+knife4j,生成接口文档

在这篇博客中,会记录 springfox3 的基本配置与使用;由于swagger-ui看得不是很习惯,额外引入了 knife4j ,使用增强版本的swagger的前端ui。

注意

@ConditionalOnProperty 注解声明了当 springfox.documentation.enabled 为 true 时启用配置,而且默认值就是 true (Swagger仅仅建议在开发阶段使用);

这里以 WebMvcConfig 为例。

@ApiImplicitParam

用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

name:参数名

value:参数的汉字说明、解释

required:参数是否必须传

paramType:参数放在哪个地方

· header --> 请求参数的获取:@RequestHeader

· query --> 请求参数的获取:@RequestParam

· path(用于restful接口)--> 请求参数的获取:@PathVariable

· body(不常用)

· form(不常用)

dataType:参数类型,默认String,其它值dataType="Integer"

defaultValue:参数的默认值

swagger页面:项目地址 + /swagger-ui/index.html

knife4j页面:项目地址 + /doc.html

1. swagger3中,设置全局参数不生效

SpringBoot版本升级方案

本文给大家介绍如何安全的升级工程中的SpringBoot版本

参考SpringBoot文档:

以我的测试工程为例: ,大家可以克隆下来测试使用

1.编辑工程配置 pom.xml ,添加 spring-boot-properties-migrator 依赖项

2.修改 spring-boot-starter-parent 的版本号,设置为你想升级到的目标版本,例如我目前使用的版本号是 2.4.5 ,要升级到目标版本 2.5.6

4.,修复完升级后的各种问题,记得将 spring-boot-properties-migrator 依赖项从工程中删除,因为实际的工程中并不需要此依赖~

SpringBoot2基于Swagger2生成离线Api文档

Github :

Gitee :

个人觉得 旧版的配置简单许多 ,新版的配置按照demo的配置来做还是复杂了很多

配置到Springboot项目中以后,在项目打包的时候便会通过单元测试在指定的目录生成被 称为staticdocs的离线文档

该篇博文引用的依赖都要引入,Spring Rest Docs的依赖spring-restdocs-mockmvc,离线文档的依赖springfox-staticdocs,因为要在单元测试的时候生成文档,所以需要再加测试相关的spring-boot-starter-test。

asciidoctor-men-plugin 插件会把Asciidoc格式文件转成HTML5格式输出。

这个类包含两个方法,TestApi()是用来生成例子,test()用来生成Asciidoc的文档。生成例子用到了spring-restdocs-mockmvc,每一个API都要进行单元测试才能生成相应的文档片段(snippets),生成的结果如图:

生成完整的Asciidoc文档用到了 Swagger2MarkupConverter ,步先获取在线版本的文档并保存到文件 swagger.json 中,第二步把 swagger.json 和之前的例子snippets整合并保存为Asciidoc格式的完整文档。生成结果如图:

通过配置类定义一些文档相关的信息

路径:项目名/docs/asciidoc/index.adoc

利用前面配置的men插件,只需要执行打包就可以生成相应的文档,如图:

该篇博文引用的依赖都要引入,Spring Rest Docs的依赖spring-restdocs-mockmvc,离线文档的依赖springfox-staticdocs,因为要在单元测试的时候生成文档,所以需要再加测试相关的spring-boot-starter-test。

asciidoctor-men-plugin 插件会把Asciidoc格式文件转成HTML5格式输出。

这个类包含两个方法,TestApi()是用来生成例子,createSpringfoxSwaggerJson()用来生成Asciidoc的文档。生成例子用到了spring-restdocs-mockmvc,每一个API都要进行单元测试才能生成相应的文档片段(snippets),生成的结果如图:

生成完整的Asciidoc文档用到了 Swagger2MarkupConverter ,步先获取在线版本的文档并保存到文件 swagger.json 中,第二步把 swagger.json 和之前的例子snippets整合并保存为Asciidoc格式的完整文档。生成结果如图:

通过配置类定义一些文档相关的信息

在resources目录下创建一个名为logback.xml的配置文件,使用LogstashEncoder作为Default Log Encoder

路径:项目名src/docs/asciidoc/index.adoc

利用前面配置的men插件,只需要执行打包就可以生成相应的文档,如图:

有5万闲钱怎么理财(有5万元闲钱怎么理财)
上一篇
卖书博主怎么起号赚钱 卖书账号吸引哪类
下一篇
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com ,一经查实,本站将立刻删除。

相关推荐