SpringBoot学习大纲
一、YAML语法
1.1.概述:
1.YAML是一种数据序列化格式
;
2.它是以数据为中心
3.容易阅读,容易与脚本语言交互,如下图所示:
1.2.基本语法
1.key: value:kv之间有空格
2.使用缩进表示层级
关系
3.缩进时候不可以使用tab键
,只可以使用空格
4.缩进的空格数量不重要,重要的是相同层级
的元素只要在缩进后可以齐就可
以
5.属性和值中:大小写敏感
6.#
表示注释
7.字符串不需要加引号:当属性中如果出现了某些特殊的字符
,就可以使用双引号包裹起来作为字符解析
单引号会将\n作为字符串输出
双引号会将\n作为换行输出
,双引号会改变它的行为,作为换行,单引号不会改变它的行为(双引号会转义,单引不号会转义
)
2.3.数据类型
1.字面量:单个的、不可再分的值:date、boolean、string、number、null
k: v
2.对象:键值对的集合。map、hash、set、object
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或
k:
k1: v1
k2: v2
k3: v3
3.数组:一组按次序排列的值。array、list、queue
行内写法:
k: [v1,v2,v3]
#或者
k:
- v1
- v2 - v3
二、配置文件说明:
2.1.配置位置
1.SpringBoot 项目最重要也是最核心的配置文件就是 application.properties
所有的框架配置都可以在这个配置文件中说明
#SPRING CONFIG(ConfigFileApplicationListener)
spring.config.name =#配置文件名(默认 为 'application' )
spring.config.location =#配置文件的位置
# 多环境配置文件激活属性
spring.profiles.active=dev #加载 application- dev.properties 配置文件内容
application- dev.properties: #开发环境
application- test.properties: #测试环境
application- prod.properties: #生产环境
#activemq
spring.activemq.broker- url #指定 ActiveMQ broker 的 URL,默认自动生成. spring.activemq.in- memory #是否是内存模式,默认为 true. spring.activemq.password #指定 broker 的密码. spring.activemq.pooled #是否创建 PooledConnectionFactory ,而非
ConnectionFactory,默认 false
spring.activemq.user #指定 broker 的用户.
#aop
spring.aop.auto #是否支持@EnableAspectJAutoProxy,默认为 : true
spring.aop.proxy- target- class #true 为使用 CGLIB 代理,false 为 JDK 代理,默认为 false
#application
spring.application.admin.enabled #是否启用 admin 特性,默认为 : false
spring.application.admin.jmx-name #指定 admin MBean 的名称,默认为 :
org.springframework.boot: type=Admin, name=SpringApplication
#artemis(HornetQ 捐献给 apache 后的版本)
spring.artemis.embedded.cluster- password #指定集群的密码,默认是启动时随机生成. spring.artemis.embedded.data- directory #指定 Journal 文件的目录.如果不开始持
久化则不必要指定. spring.artemis.embedded.enabled #是否开启内嵌模式,默认 true
spring.artemis.embedded.persistent #是否开启 persistent store,默认 false. spring.artemis.embedded.queues #指定启动时创建的队列,多个用逗号分隔,默认 : [ ]
spring.artemis.embedded.server- id #指定 Server ID. 默认是一个自增的数字,
从 0 开始. spring.artemis.embedded.topics #指定启动时创建的 topic,多个的话逗号分韩顺平 Java 工程师隔,默认 : [ ]
spring.artemis.host #指定 Artemis broker 的 host. 默认 : localhost
spring.artemis.mode # 指 定 Artemis 的 部 署 模 式 , 默 认 为
auto-detected(也可以为 native or embedded). spring.artemis.port #指定 Artemis broker 的端口,默认为 : 61616
#autoconfig
spring.autoconfigure.exclude #配置要排除的 Auto- configuration classes. #batch
spring.batch.initializer.enabled #是否在必要时创建 batch 表,默认为 true
spring.batch.job.enabled #是否在启动时开启 batch job,默认为 true
spring.batch.job.names #指定启动时要执行的 job 的名称,逗号分隔,默认所有 job 都会被执行
spring.batch.schema # 指 定 要 初 始 化 的 sql 语 句 路 径 , 默认: classpath: org/springframework/batch/core/schema- @@platform@@.sql)
spring.batch.table- prefix #指定批量处理的表的前缀.
#cookie、session 配置
server.session.cookie.comment #指定 session cookie 的 comment
server.session.cookie.domain #指定 session cookie 的 domain
server.session.cookie.http- only #是否开启 HttpOnly. server.session.cookie.max- age #设定 session cookie 的最大 age. server.session.cookie.name #设定 Session cookie 的名称. server.session.cookie.path #设定 session cookie 的路径. server.session.cookie.secure #设定 session cookie 的“Secure” flag. server.session.persistent #重启时是否持久化 session,默认 false
server.session.timeout #session 的超时时间
server.session.tracking- modes #设定 Session 的追踪模式(cookie, url, ssl).
#datasource
spring.dao.exceptiontranslation.enabled # 是 否 开 启
PersistenceExceptionTranslationPostProcessor,默认为 true
spring.datasource.abandon- when- percentage- full #设定超时被废弃的连接占到多少比例时要被关闭或上报
spring.datasource.allow- pool- suspension #使用 Hikari pool 时,是否允许连接池
... ... ... ... ... ... ... ... ... ... ... .
2.2.修改默认配置:
1.各 种 配 置 都 有 默 认 , 可 以 在 resources\application.properties 修 改 ,application.properties 文件我们可以手动创建
server.port=10000
spring.servlet.multipart.max- file- size=10MB
2.3.常用配置
server.port=10000
server.servlet.context- path=/allModel
mybatis.type- aliases- package=com.cxs.allmodel.model
mapper- locations 就有用了)
mybatis.mapper- locations=classpath: com/cxs/allmodel/mapper
spring.session.timeout=18000
mysql.one.jdbc- url=jdbc: mysql: //127.0.0.1: 3306/test? serverTimezone=Asia/Shanghai&useSSL=false
mysql.one.username=
mysql.one.password=
mysql.one.maximum- pool- size=15
上级别的日志
也可以具体到某个类名(日志级别的值不区分大小写)
logging.level.com.cxs.allmodel.=debug
logging.level.com.cxs.allmodel.mapper=debug
logging.level.org.springframework.web=info
logging.level.org.springframework.transaction=info
logging.level.org.apache.ibatis=info
logging.level.org.mybatis=info
logging.level.com.github.pagehelper = info
logging.level.root=info
logging.file=/tmp/api/allmodel.log
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
spring.jackson.serialization.fail- on- empty- beans=false
spring.jackson.date- format=yyyy- MM- dd HH: mm: ss
spring.jackson.time- zone=GMT+8
spring.http.encoding.charset=utf8
spring.redis.host=
spring.redis.password=
spring.redis.port=
spring.redis.database=14
2.4.自定义配置
1.还可以在 properties 文件中自定义配置,通过@Value("${}")
获取对应属性值
application.properties 文件
my.website=https: //www.baidu.com
@Value ( "${my.website}" )
private String bdUrl;
三、配置生效:
3.1.分析条件配置规则
1.下面是条件配置规则(@Conditionalxxxxxxx
)来决定是否进行启动的举例:
3.2.修改SpringBoot的默认配置:
1.官网查看可以配置的属性
2.SpringBoot默认会在底层配好所有的组件。@ConditionalOnMissingBean注解就实现了如果用户自己配置了就以用户的优先
3.如下给容器中加入了文件上传解析器:
@Bean
@ConditionalOnBean ( MultipartResolver . class )
@ConditionalOnMissingBean ( name = DispatcherServlet . MULTIPART_RESOLVER_BEAN_NAME)
public MultipartResolver multipartResolver ( MultipartResolver resolver) {
return resolver;
}
3.说明:
在@Bean标注的方法multipartResolver()方法上,我们传入了对象参数,只要配置了参数
,这个参数的值就会从容器中找
之所以在容器找事为了防止有些用户配置的文件上传解析器不符合规范,然后我们通过查找,然后找到之后就进返回一个符合规范的名称