springboot大纲

1.默认生成springboot项目
主程序已经生成好了,我们只需要我们写自己的业务逻辑。controller层

resoure文件夹目录结构
staic:保存所有的静态资源;js css images
templates:保存所有的模板页面(Spring boot默认jar包使用嵌入式tomcat,默认不支持jsp页面)
application.properties:spring boot应用的配置文件,可以修改一些默认设置。
2.YAML语法
k:(空格)v:表示一对键值对(空格必须有)。
以空格控制缩进进来控制层级关系;只要是左对齐的一列数据,都是同一层级的。
属性和值也是大小写敏感。

2.@value获取值和@configurationProperties获取的值比较
配置文件yml还是properties他们都能获取到值;
如果说,我们只是在某个业务逻辑中需要获取一下文件中的某项值,使用@value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,就直接使用configurationProperties

3.Profile
1.多Profile文件
我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml;默认使用application.properties的配置。
2.yml支持多文档块方式
3.激活指定profile
3.1在配置文件中指定 spring.properties.active=dev
3.2命令行:
java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
可以直接测试的时候,配置传入命令行参数
3.3虚拟机参数:
-Dspring.profiles.active=prod

一.配置文件加载位置
springboot启动会扫描以下位置的application.properties或者application.yml文件作为springboot的默认配置文件
-file:./config/
-file:./
-classpath:/config/
-classpath:/
优先级由高到低,高优先级的配置会覆盖低优先级的配置;
springboot会从这四个位置全部加载主配置文件:互补配置;

我们还可以通过spring.config.location来改变默认配置文件位置
项目打包好了以后,我们可以使用命令行参数形式,启动项目的时候来指定配置文件的位置;指定的配置文件和默认加载的配置文件共同起作用形成互补配置;
命令行参数
java -jar spring-boot-02-config-02-0.0.1-SHAPSHOT.jar --server.port=8087 --server.context-path=/abc
多个配置用空格分开;–配置项=值

二.自动配置原理:
精髓
1.springboot会自动加载大量的自动配置类;
2.我们看我们需要的功能有没有springboot默认写好的自动配置类;
3.我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
4.给容器中自动配置类添加组件的时候,会从properties类中获取某些属性的值,我们就可以从配置文件中指定这些属性的值;
/*
*author:霍逸豪
*data:2020/03/14
*/
精髓
xxxxConfiguration:自动配置类
给容器中添加组件
xxxxProperties:封装配置文件中相关属性

自动配置类必须在一定的条件下才能生效
我们可以通过启用 debug=true属性;来让控制台打印自动配置类报告,这样我们就可以很方便的知道哪些自动配置类生效了;

一.springboot与日志
1.日志框架
市面上的日志框架
JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j…
日志门面(JCL SLF4j jboss-logging)
日志实现(Log4j JUL Logback Log4j2)
推荐:
日志门面:SLF4J:
日志实现:Logback

SpringBoot:底层是Spring框架,Spring框架默认用JCL;
SpringBoot选用SLF4j和logback

2.SLF4j使用
1.如何在系统中使用SLF4j
以后开发的时候,日志记录方法的调用,不应该来调用日志的实现,而是调用日志抽象层里面的方法;
给系统导入slf4的jar和logback的实现jar
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info(“Hello World”);
}
}

每一个日志都有自己的配置文件。使用slf4j以后,配置文件还是做成日志实现框架自己本身的配置文件;
如何让系统所有的日志都统一到slf4j;
1.将系统中其他日志框架先排除出去。
2.用中间包来替换原有的日志框架;
3.我们导入slf4j其他的实现;
3.Springboot日志关系
//记录器

Logger logger = LoggerFactory.getLogger(getClass());
@Test
void contextLoads() {

// System.out.println();
// 日志的级别,
// 由低到高 trace<debug<info<warn<error
// 可以调整输出日志级别:日志就只会在这个级别以后的高级别生效
logger.trace(“这是trace日志”);
logger.debug(“这是debug日志”);
// springboot默认给我们使用的是info级别的
logger.warn(“这是warn日志”);
logger.info(“这是info日志”);
logger.error(“这是erro日志…”);
}
日志输出格式:springboot默认配置
logging.level.com.atguigu=trace
#指定路径在当前项目下生成的springboot.log日志
#logging.file.name=springboot.log
#logging.file.name=F:/springboot.log
#在当前磁盘的根目录下创建spring文件夹和里面的log文件夹;使用spring.log作为默认文件logging.file.path=/spring/log
logging.file.path=F:/spring/log

在控制台输出的日志格式

logging.pattern.console=%d{yyyy-MM-dd-HH:mm:ss:SSS} [%thread] %-5level %logger{50} - %msg%n
#指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd-HH:mm:ss:SSS} === [%thread] === %-5level === %logger{50} === %msg%n

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章