Spring Boot 2精髓 - (7) 配置

spring boot

配置 Spring Boot

application.properties

服务器配置

  • server.address 服务器IP 绑定地址,如果你的主机上有多个网卡,可以绑定一个 IP 地址
  • server.session.timeout 会话过期时间,以秒为单位
  • server.eηor.path 服务器出错后的处理路径/error
  • server.servlet contextpath Spring Boot应用的上下文
  • server.port Spring Boot 应用监听端口

使用其他 Web 服务器

Spring Boot 内置了 Tomcat,同时还支持JettyUndertow 作为 Web 服务器。使用这些应用 服务器, 只需要引入相应的 starter

配置启动信息

可以在 classpath 中增加 banner.txt, 显示你自己的输出信息,在 Spring Boot 项目的 resources 目录下新建一个 banner.txt

可以设置 banner.gif(png,jpg),控制台自动将图片转为 ASCII 字符,作为启动信息输出

  • banner.charset=UTF-8 # banner.txt 字符集
  • banner.location=classpath:banner.txt
  • banner.image.location=classpath:banner.gif #如采使用图片,图片的位置可以使用 jpg/ png
  • banner.image.width=76 #图片宽度,这里指转为字符的个数,越多越清楚
  • banner.image.height=76 #图片长度
  • banner.image.margin=2 #图片与左边的边距,默认为 2 个字符

配置浏览器显示 ico

在项目的 resources 目录下新建一 个 static 目录,在 static 目录下创建 images 目录(或者任意放置图片的目录),然后将项目的 favicon.ico 放在 images 目录下,每个页面添加以下样式即可:

1
<link rel="shortcut icon" href="/images/apple.ico">

日志配置

默认情况下,不需要对日志做任何配置就可以使用, Spring Boot 使用 LogBack 作为日志的
实现,使用 apacheCommons Logging作为日志接口

1
2
3
4
5
6
logging.level.root=info
logging.level.org.springframework=info
logging.level.com.bee.sample=debug
logging.file = my.log
logging.pattern.console=%level %date{HH:mm:ss} %logger{20}.%M %L :%m%n
logging.pattern.file= %level %date{ISO8601} [%thread] %logger{20}.%M %L :%m%n

读取应用配置

Environment

Environment是一个通用 的读取应用程序运行时的环境变量的类,可以读取 application.properties、命令行输入参数、系统属性、操作系统环境变量等。

@Value

直接通过@Value注解注入一个配置信息到 Spring管理的 Bean 中

@ConfigurationProperties

将一组同样类型的配置属性映射为一个类更为方便

Spring Boot 自动装配

@Configuration 和@Bean

注解@Configuration, 向 Spring 表明这是一个配置类,类里的所有带@Bean注解的方法都会被 Spring调用,返回对象将会作为一个 Spring容器管理的 Bean

Bean条件装配

@ConditionalOnBean,在当前上下文中存在某个对象时,才会实例化一个 Bean
@ConditionalOnMissingBean, 在当前上下文中不存在某个对象时,才会实例化一个 Bean

Class条件装配

Class条件装配是按照某个类是否在 Classpath 中来决定是否要配置 Bean。@ConditionalOnClass
表示当 classpath 有指定的类时,配置生效

Environment 装配

可以根据 Spring Boot 的 Environment 属性来决定配置是否生效

其他条件装配

  • ConditionalOnExpression,当表达式为 true 时,才会实例化一个 Bean,支持 SpEL 表达式,比如根据配置文件中的某个值来决定配置是否生效。
  • ConditionalOnJava,当存在指定的 Java 版本的时候

联合多个条件

Condition 接口

制作 Starter

starter包含了两项主要 的功能才使得 Spring Boot 变得非常容易使用 :

  • 配置了依赖库,如 sprinh-boot-starter-web 依赖了 Tomcat 等, beetl-framework-starter 依赖了Beetl和 BeetlSQL 等。
  • 自动配置

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :