b spirng boot入门介绍2.3~2.12

—> go to 总目录

4.3 Profiles

Spring Profiles 让应用在不用环境下有不同配置。任何@Component, @Configuration或者@ConfigurationProperties可以和@Profile标记,来显示他们何时被加载。
在这里插入图片描述

如果@Configurationes通过@EnableConfigurationProperties而不是自动扫描,那么@Profile的注解需要标注在@EnableConfigurationProperties的类上。这个示例中是会被自动扫描到

在配置中激活
在这里插入图片描述
命令行
--spring.profiles.active=dev,hsqldb

4.3.1 Adding Active Profiles

添加激活的profiles
首先激活profile可以用spring.profiles.active
属性,但是command line可以覆盖掉。
有时并不是覆盖得关系,而是both都要激活的关系,使用include
在这里插入图片描述

4.3.2 用代码激活Profile

  • SpringApplication.setAdditionalProfiles(…)在run之前
  • 或者使用ConfigurableEnvironment接口

4.4 Logging

集成了apache的common log,并且让log的实现开放。默认的配置会提供
JAVA util logginglog4j2logback插件。log会输出在console,但可以配置输出在文件。
默认你使用了starters,logback会被用来logging。

当你部署你的应用都到容器或者容器server时,logging会通过java Util Logging API打印,这些日志不会输出到你的应用日志。

4.4.1 日志格式

在这里插入图片描述

  • 输出的日期 毫秒级
  • 日志级别:ERROR, WARN, INFO, DEBUG, or TRACE
  • 进程ID
  • 线程名
  • logger名
  • logmessage

4.4.2 console Output

默认输出 ERROR+WARN+INFO
打开debug
在这里插入图片描述

彩色输出

什么jb介绍都有啊

4.4.3 文件输出

在application 配置
logging.file.name
logging.file.path

在这里插入图片描述

日志配置

默认是10mb。可以配置按时间和日期切分
单个文件的size
logging.file.max-size
单个文件的最大历史
logging.file.max-history
文件保留的最大size
logging.file.total-size-cap
强制每次启动是清楚
logging.file.clean-history-on-start

具体框架的日志配置是不受spring管理的,比如logback的logback.configurationFile

4.4.4 Log Levels

日志级别的配置
logging.level.=level的配置
在这里插入图片描述
也可以用环境变量来配置
LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG

4.4.5 Log Groups

聚合相关logger的一起来配置十分有用。
使用logging.group.name
在这里插入图片描述
集中配置
在这里插入图片描述
内置的log group
在这里插入图片描述

4.4.6 自定义的log配置

classpath下的多种日志框架,会被自动激活。但是可以依赖root或者classpath或者被Environment下指定的logging.config配置文件自定义。

你可以使用属性org.springframework.boot.logging.LoggingSystem=value来指定特殊的日志框架。这个值是全名匹配LoggingSystem。你可以通过value设置为none来关闭日志系统。

因为日志的初始化在ApplicationContext之前,所以不能使用@Configuration上的@PropertySources来配置能关闭和改变日志系统的方式是通过环境变量

下列日志系统的配置
在这里插入图片描述

推荐使用带-spring的配置文件变体比如logback-spring.xml而不是原生的logback.xml

可以通过系统属性的变量来设置
变量table
在这里插入图片描述
支持 的日志框架
在这里插入图片描述

4.4.7 logback 扩展

Spring boot 扩展配置
因为logback.yml被加载的太早了,但是可以靠logback-spring.xml或者logging.config来设置。

Profile-specific Configuration

在logback-spring.xml中依赖
springProfile标签来配置不同的profile
在这里插入图片描述

Environment Properties

可以把从Environment中获取属性值。这么做的好处是可以使用application.properties中的值来应用到logback的值。然而不是用value标签,而是使用source属性来表示。如果你想在其他地方存储属性,你可以使用scope属性。还可以使用默认值去(defalutValue)
在这里插入图片描述

4.5 国际化

使用message.properties属性来配置不同语言的messages。如果你的容器包含语言具体的属性language-specific的属性文件,你可以添加默认。如果没找找到,就会根据配置的basename去匹配。
在这里插入图片描述

4.6 JSON

在这里插入图片描述
spring-boot-starter-json默认配置了JacksonObjectMapper会被自动配置
如何配置详见 HOW-TO

4.7 Web 框架开发

spring mvc

webflux

JAS-RS 和jersey

rest encpoints

内嵌container

reactive server的配置

4.8 Rscoket

二进制传输歇息,可以提供异步消息传输模型。

RSocket RSocket是一个二进制的协议,以异步消息的方式提供4种对等的交互模型,以字节流的方式运行在TCP, WebSockets, Aeron等传输层之上。RSocket专门设计用于与Reactive风格应用配合使用,这些应用程序基本上是非阻塞的,并且通常(但不总是)与异步行为配对。它是传输无关的,支持 TCP、WebSocket和Aeron UDP协议,并支持无语义损失的混合传输协议——回压和流量控制仍然有效。

4.9 Security

4.9.1 MVC Secutity

4.9.2 WebFlux Security

4.9.3 OAuth2

是一种被官方运用的OAuth2

4.9.4 SAML 2.0

安全标记语言

4.9.5 Actuator Security

4.10 Working with SQL Database(推荐用mybatis 而不是这个)

Spring Framework 提供对sql database通用的支持。
从直接JDBC生成JdbcTemplate,Spring Data提供一种新的访问方式
Repository,内置访问模板

4.10.1 连接池的管理

推荐用HikariCP,优先命中

其次,Tomcat 池化的 DataSource

都没有的话才是Commons DBCP2

和JNDI的链接

4.10.2 Using JdbcTemplate

4.10.3 JPA和Spring Data JPA

4.10.4 JDBC

就是Repository的用法

4.10.5 使用H2 web console

4.10.6 Using JOOQ

面向对象的访问。

4.11 working with nosql

Redis

cache 型数据库

MongoDB

开源的Nosql document database—使用json-like的格式来存储,而不是传统的table-based。

Neo4j(存图的数据库–重要)

开源的 graph 数据库,对于topo连接和类关系

solr 是一个apache的搜索引擎

ElasticSerch

开源文档存储,数据分析引擎。

Cassandra

开源的分布式数据库管理系统。

Couchbase

CouchBase是在memcached和redis之类缓存组件的基础上发展而来的,被称作为可能是最好的缓存系统。所其必然能满足之前的前辈所满足不了的地方。
传统的缓存组件包括memcached和redis有着这种或者那种的缺点:

Cluster支持完善度不够或者直接没有Cluster
没有良好的高可用性机制,持久化支持的亦不是很完善
扩容和故障恢复能操作维护复杂
其他
而CouchBase则对上面的一些缺点都有着良好的支持。或者说
CouchBase所提供的任何单一功能,在市面上基本上都能找到一款数据库能够满足。但是这些数据库实际使用的话总是会有各种各样的妥协,性能很好的话,扩展性可能很差之类的。而CouchBase的目标就是建立一个大一统,各种功能都包含可用,所谓接近完美的数据库

LDAP 目录服务

本身并不是db,而是目录协议,任何满足该协议的目录,都会被整合。

4.12 Caching

首先springboot支持很多provider来进行缓存。未配置时会提供一个简单的。
用法如下
Spring Caching。自动装配通过@EnableCaching注解打开
添加一个caching
在这里插入图片描述
匹配这个i值,会把i值对应的结果缓存。

你可以使用JSR-107协议(JCache)注解,比如@CacheResult

4.12.1支持的providers

如果你没有提供名为cacheResolver的CacheManager或者 CacheResolver。会按照这个顺序找
在这里插入图片描述
你也可以自定义一个CacheManager来对cache进行设置。
在这里插入图片描述

1. generic

通用的cachae是用org.springframework.cache.Cache。CacheManager会包裹所有的类型

2、JCache(JSR-107)

JCache通过在classpath目录下放置javax.cache.spi.CachingProvider来启动。这个JCacheCacheManagerspring-boot-starter-cache的Starter提供。Spring boot提供多样的库,比如Ehcache 3、Hazelcast
当出现多个provider时,通过配置来指定。
在这里插入图片描述

spring boot 对Hazelacast有很好的支持

有两种方式去在javax.cache.cacheManager去自定义

  • 启动时设置spring.cache.cache-names属性,如果自定javax.cache.configuration.Configuration被发现,就会被启用。
  • org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer被CacheManager定义,然后被CacheManger引用

3 EhCache 2.x

实用ehache.xml来做缓存

4 Hazelcast (spring boot 对其有很好的支持)

5 Infinispan

6 Couchbase

7 redis

高速内存数据库

8 Caffeine

对guava cache的支持,对guava cache进行了重写。

9 Simaple

默认使用了ConcurrentHashMap

10 None,关闭

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值