自学Spring Boot框架笔记(持续更新)

1 入门

1.1 简介

简化Spring应用开发,整合Spring技术栈,JavaEE一站式解决方案。(用keras和TensorFlow的关系去理解Spring Boot和Spring)。

1.2 微服务

每一个功能元素放到独立可替换升级的服务中(传统的服务拆分成多个)。

1.3 依赖

Spring boot将所有场景功能都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入场景就行,依赖是自动导入的。

1.4 文件目录

main/
├── java:自己写的java业务逻辑
│ └── xyz
│ └── cqulwj
│ ├── controller
│ │ └── HomeController.java
│ └── Main.java
└── resources:资源
├── application.properties:Spring Boot 应用的配置文件
├── static:所有的静态资源;js css images等;
└── templates:保存所有的模板页面;(使用嵌入式tomcat,默认不支持JSP页面)

2 配置文件

2.1 配置文件

Spring Boot 使用一个全局的配置文件,文件名固定:

  • application.properties
  • application.yml
    yml是一种文本标记语言,以数据为中心(建议使用)

2.2 YAML语法

K:V 标识一对键值对
以空格缩进来标识层级关系

server:
  port: 8080
  address: 0.0.0.0

对象、Map写法

student:{
    
    no:001,name:Jack}

数组的两种写法

pets:
  - cat
  - dog
  - pig

pets:[cat,dog,pig]

2.3 yml配置文件值注入

2.3.1 首先申明要注入的类

@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    
    
    private Integer num;
    ……;
}

注意要有setter方法。

2.3.2 在yml中配置类的值

student:
  num: 18
  ……

2.3.3 配置pom文件依赖

<!--yml依赖-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

2.3.4 使用

@Autowired
	Student student;

2.4 配置文件占位符号

随机数:${random.int}、${random.value}、${random.long}
默认值:${num:10}(冒号后面是默认值)

2.5 profile

2.5.1 多profile文件

配置文件可以是:Application-{profile}.yml/properties
激活:spring.profiles.active=devjijiji

2.5.2 yml支持多文档块方式

server:
  port: 8081
  address: 0.0.0.0
spring:
  profiles:
    active: dev
---
spring:
  profiles: dev
server:
  port: 8082

默认8081,激活dev则开启8082端口

2.6 配置文件的加载位置

  • file: ./config/ 即:项目根目录下的/config,和pom.xml一级
  • file: ./ 即:项目根目录,和pom.xml一级
  • classpath:/config/ 即:main/resources/config/application.properties
  • classpath:/ 即:main/resources/application.properties

知识点:按照优先级由高到低加载,高覆盖低的配置;配置文件可以另外指定位置,在命令行启动的时候添加参数–spring.config.location即可(方便部署后再配置);也可以在打包后的jar包同目录下放置配置文件。

2.7 自动配置原理

待深挖……

3 日志

3.1 日志框架选择

日志门面:SLF4J
日志实现:Logback
Spring框架默认使用JCL;
Spring Boot选用SLF4J和logback。

3.2 日志框架使用

3.2.1 使用SLF4j


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Controller
public class HomeController {
    
    
    @ResponseBody
    @RequestMapping("/home")
    public String home(){
    
    
        Logger logger= LoggerFactory.getLogger(HomeController.class);
        logger.info("进入访问");
        return "This is my home!!!";
    }
}

3.2.2 各包日志框架混用问题

可以使用slf4j的对应中间包替换原有日志框架,再使用slf4j其他的实现。

3.3 Spring Boot日志关系

3.3.1 底层也是slf4j+logback的方式;
3.3.2 Springboot同时也把其他包也替换成slf4j;
3.3.3 引入新的框架时,要移除其日志框架,springboot自动会添加slf4j;

3.4 Spring Boot日志使用

Logger logger= LoggerFactory.getLogger(HomeController.class)

日志方法,级别由低到高:
trace()<debug()<info()<warn()<error()

3.4.1 可以在配置文件中设置输出日志的级别。
logging.level.xyz.cqulwj=trace

3.4.2 设置日志文件位置
logging.file=path/my.log

3.4.3 指定日志文件目录
logging.path=path

3.4.4 可以设置自己的日志配置文件
会覆盖默认的spring配置
建议命名为:logback-spring.xml

4 Spring Boot与Web开发

使用流程:选择应用->自动配置->编写业务逻辑。

4.1 静态资源

4.1.1 访问webjars下面的资源,直接给包的目录/webjars/**路径。

4.1.2 自己业务逻辑的资源寻找路径即"/–"(静态资源文件夹):

  • “classpath:/META_INF/resources”
  • “classpath:/resources/”
  • “classpath:/static/”
  • “classpath:/public/”
  • "/"当前项目的根路径

4.1.3 欢迎页的映射
所有静态资源文件夹+index.html

4.1.4 图标
所有的 **/favicon.ico 也在静态资源下面找

4.2 模板引擎

JSP、Velocity、Freemarker、Thymeleaf

4.2.1 引入thymeleaf

知识点

1 Spring boot只找SpringBootApplication注解主类同级和下一级的组件扫描,不会找其上一级的;

2 @ImportResource(locations={“classpath:—.xml”}):导入Spring的配置文件,让配置文件生效;

3 @PropertySource 加载指定配置文件;

4 @Configuration 配置类 -> @Bean将方法返回值添加到容器中

猜你喜欢

转载自blog.csdn.net/weixin_44215363/article/details/109263971