纷杂的Spring-boot-starter: 1 应用 日志 和 spring- boot- starter- logging
我认为,SpringBoot微服务框架从两个主要层面影响Spring社区的开发者们:
- 基于Spring框架的“约定优先于配置(COC)”理念以及最佳实践之路
- 提供了针对日常企业应用研发各种场景的spring-boot-starter自动配置依赖模块,如此多“开箱即用”的依赖模块,使得开发各种场景的Spring应用更加快速和高效。
SpringBoot提供的这些“开箱即用”的依赖模块都约定以spring-boot-starter-作为命名前缀,并且皆位于org.springframework.boot包或者命名空间下(虽然SpringBoot的官方文档中提到不建议大家使用spring-boot-starter-来命名自己写的类似的自动配置依赖模块,但实际上,配合不同的groupId,这应该是不是什么问题)
如果我们访问spring,并单击图中的“Switch to the full version”链接,就会发现SpringBoot1.3.1默认支持和提供了大约80多个自动配置依赖模块。
鉴于数量如此之多,并且也不是所有人都会在任何一个应用中应用到所有,就几个常见的通用spring-boot-starter模块进行说下,希望童鞋可以举一反三,灵活应用所有日后工作过程中将会用到的那些spring-boot-starter模块。
所以的spring-boot-starte都有约定俗称的默认配置,但允许我们调整这些配置以改变默认配置行为,即“约定优于配置”。在介绍相应spring-boot-starter的默认配置(约定)以及可调整配置之前,我们哟必要对springBoot应用的配置约定先做一个简单的介绍。
简单来讲,我们可以将对SpringBoot的行为可以进行干预的配置方式划分为几类:
- 命令行参数(Command Line Args)
- 系统环境变量(Environment Variables)
- 位于文件系统中的配置文件
- 位于classpath中的配置文件
- 固化到代码中的配置项
为了简化,其它比较少见场景的配置方式不再罗列。总的来说,以上几种方式按照优先级从高到低排列,高优先级方式提供的配置项可以覆盖或者优先生效,比如通过命令行参数传入的配置项会覆盖通过环境变量传入的同一配置项,当然也会覆盖其它后面几种方式给出的同一配置项。
不管是位于文件系统还是classpath,springboot应用默认的配置文件名叫作application.properties,可以直接放在当前项目的跟目录或者名称为config的子目录下。
以上是关于springBoot应用配置方式的简单介绍,基本可以满足我们后面讲解的需要,所以,现在让我们进入纷杂的spring-boot-starter探索之旅吧!
应用日志和spring-boot-starter-logging
Java的日志系统多种多样,从java.util默认提供的日志支持,到log4j,log4j2,commons-logging等,复杂繁多,所以,应用日志系统的配置就会比较特殊,从而spring-boot-starter-logging也比较特殊一些,下面将其作为我们第一个了解的自动配置依赖模块。
假如maven依赖中添加了spring-boot-starter-logging:
< dependency> < groupId> org. springframework. boot</ groupId> < artifactId> spring- boot- starter- logging</ artifactId>
</ dependency>
那么,我们的SpringBoot应用将自动使用logback作为应用日志框架,SpringBoot启动的时候,由org.springframework.boot.loggging.Logging-Application-Listener根据情况初始化并使用。
Springboot为我们提供了很多默认的日志配置,所以,只要将spring-boot-starter-logging作为依赖加入到当前应用的classpath,则“开箱即用”,不需要做任何多余的配置,但假设我们要对默认SpringBoot提供的应用日志设定做调整,则可以通过几种方式进行配置调整:
遵循logback的约定,在classpatch中使用自己定制的logback.xml配置文件
在文件系统中任何一个位置提供自己的logback.xml配置文件,然后通过logging.config配置项指向这个配置文件来启用它,比如在application.properties中指定如下配置:
logging. config=/{ some. path. you. defined}/ any- logfile- name- I- like. log
注意 SpringBoot默认允许我们通过配置文件或者命令行等方式使用logging.file和logging.path来自定义日志文件的名称和存放路径,不过,这只是允许我们在SpringBoot框架预先定义的默认日志系统设定的基础上做有限的设置,如果我们希望更灵活的配置,最好通过框架特定的配置方式提供相应的配置文件,然后通过logging.config来启用
如果更习惯使用log4j或者log4j2,那么也可以采用类似的方式将它们对应的spring-boot-starter依赖模块加到maven依赖项中即可:
<dependency> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
或者
<dependency> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
但一定不要将这些完成同一目的的spring-boot-starter都加到依赖中
纷杂的Spring-boot-starter: 1 应用 日志 和 spring- boot- starter- logging相关推荐
- Spring Boot - 手把手教小师妹自定义Spring Boot Starter
文章目录 Pre 自定义starter的套路 步骤 命名规范 官方命名空间 自定义命名空间 实战 创建一个父maven项目:springboot_custome_starter 创建 两个Module ...
- 【spring boot2】第8篇:spring boot 中的 servlet 容器及如何使用war包部署
嵌入式 servlet 容器 在 spring boot 之前的web开发,我们都是把我们的应用部署到 Tomcat 等servelt容器,这些容器一般都会在我们的应用服务器上安装好环境,但是 spr ...
- 深入理解 Spring Boot Starters 原理(手写Spring boot Start)
一.Spring Boot Starter诞生原因 Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,stackoverflow上面已经有人概括了这个starte ...
- boot入门思想 spring_(第一讲)Spring Initializr-快速入门Spring Boot的最好选择
1讲:Spring Initializr-快速入门Spring Boot的最好选择 Spring Initializr [http://start.spring.io/]是引导你快速构建Spring ...
- Spring Boot开发利器之STS(Spring Tool Suite 4)下载与安装
Spring Boot开发利器之STS(Spring Tool Suite 4)下载与安装 背景 正文 前置条件 下载 安装 背景 在使用eclipse进行Spring Boot或Spring Clo ...
- SoJpt Boot 2.3-3.8 发布,Spring Boot 使用 Jfinal 特性极速开发
SoJpt Boot 2.3-3.8 发布了.SoJpt Boot 基于 JFinal 与 Spring Boot制作, 实现了 Spring Boot 与 Jfinal 的混合双打,使 Spring ...
- Spring Boot Admin 2.1.4,Spring Boot 应用的 Admin UI
开发四年只会写业务代码,分布式高并发都不会还做程序员? Spring Boot Admin 是用来管理 Spring Boot 应用程序的一个简单的界面. Spring Boot Admin 2. ...
- Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 局长 来源 | oschina.net/new ...
- 让你的spring-boot应用日志随心所欲--spring boot日志深入分析
1.spring boot日志概述 spring boot使用Commons Logging作为内部的日志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配 ...
- java配置文件放置到jar外_java相关:Spring Boot 把配置文件和日志文件放到jar外部...
java相关:Spring Boot 把配置文件和日志文件放到jar外部 发布于 2020-3-6| 复制链接 如果不想使用默认的application.properties,而想将属性文件放到jar ...
最新文章
- 「AlphaGo 之父」David Silver最新演讲,传授强化学习的十大原则
- 实验详解——Cobbler自动部署最小化安装
- 六步创建TCP服务端
- oracle database 11g plsql 程序设计,oracle-database-11g-plsql-编程实战笔记
- 又一个手机圈大佬确认离职!网友:圈内再无万瓷王
- 堆内存 和 栈内存的简单理解 (未完待续~)
- 比Magic Leap快一步,HoloLamp做到了裸眼观看全息图
- 你能熟练使用Dictionary字典和List列表吗?
- 数据库——mysql如何获取当前时间---https://www.cnblogs.com/Chenshuai7/p/5136469.html
- 《初级会计电算化应用教程(金蝶KIS专业版)》——1.4 会计核算软件
- 算法导论第三版 第1章习题答案
- 二元函数matlab画图_matlab心形图大全,几个经典的函数图像,有趣的函数图像,matlab画图...
- 输入N,打印对应N行的图案。
- jenkins的administrator权限
- 网络安全等级保护等级保护对象的安全保护等级
- Dart_Flutter【插件介绍+平台发布+视频】【180个网址导航】
- frl啥意思_手表日历显示frl是什么意思
- 用累积分布函数(CDF)计算期望
- outlook邮箱显示一直启动中_win10outlook邮箱怎么设置开机自动运行 - 卡饭网
- Cell Genomics封面|北大吴华君组利用空间多组学技术解析肿瘤内空间异质性(附招聘)...
热门文章
- java 整型 二进制_Java中如何得到一个整型数的二进制形式(十进制转化成二进制)...
- 分布式事务解决方案总结
- Spring整合MyBatis之MapperFactoryBean
- 阿里云环境迁移记录 - RabbitMQ集群搭建
- Python 面向对象3-类变量与实例变量
- 从零开始用Python3做数据分析
- Linux uptime命令详解
- centos下nginx bind() to 0.0.0.0:8090 failed
- VS报:dll标记为系统必备组件,必须对其进行强签名错误
- Linux版Silverlight - Moonlight宣布停止更新