当前位置:AIGC资讯 > AIGC > 正文

springboot笔记

目录

一springboot

1.什么是springboot

2.springboot开发步骤

3.springboot优点

4.springboot的依赖管理

目录

springboot

1.什么是springboot

2.springboot开发步骤

3.springboot优点

4.springboot的依赖管理

5.自动化配置

6.注解

7.属性绑定

8.自动配置原理

9.日志

10.web开发

静态资源规则:

11.内容协商

11.错误处理机制:

数据整合:

基础特性

12.profiles环境隔离

13.外部化配置

14.单元测试

场景整合:

远程过程调用

5.自动化配置

6.注解

7.属性绑定

8.自动配置原理

二日志

springboot

1.什么是springboot

        springboot提供了一站式的解决方案,可以快速创建spring的应用,内嵌了tomcat服务器,提供了可选的starter,比如说web的starter,导入所有的依赖;还有自动配置,按需配置,约定大于配置;提供生生产级别的特性,监控指标,健康监控,外部化配置不需要源码改变;

2.springboot开发步骤
创建项目:创建maven的工程,继承parent的父工程(所有的springboot项目必须继承spring-boot-starter-parent) 导入依赖:导入web需要的starter; 主程序:创建启动类(加上@springbootApplication) 运行run方法; 打包:当然springboot也提供了打包插件,(spring-boot-maven-plugin插件) 支持外部化配置:
3.springboot优点
 简化整合;starter 简化配置:yml的配置文件; 简化部署:打包成jar包,linux有Java环境就可以启动; 简化运维:修改配置,健康检查等
4.springboot的依赖管理

        web-starter 会根据maven的传递性,导入所有的依赖,而且不需要写版本号,是因为每个项目都继承parent项目,里面有依赖管理,dependencymangement;

5.自动化配置

yml中的属性会和配置文件类绑定;

按需加载,导入web的starter,回到导入所有starer的基础springboot-starter,有一个autoconfigure

的包,包中有所有场景的自动配置类;

6.注解

@import导入第三方的类进入容器;

@configuration配置类

@conditionon***条件注解:conditionOnClass

7.属性绑定

配置文件中通过@bean和@configurtionProperties(prefix = "pig");(pig开头)        

然后通过配置文件绑定比如:pig.id =2,pig.name = 佩奇;

或者:

@enableconfigurtionProperties

8.自动配置原理
首先导入web-stater,里面有核心的starter导入了autoconfigure包; 主程序的espringbootapplication由三个注解组成的:
@SpringBootConfiguration配置类
@ComponentScan包扫描的规则
@EnableAutoConfiguration开启自动配置: 通过@import批量导入组件,根据MATA-INF/spring下的autoconfigure文件按需加载;因为有条件注解conditionOnClass,也就是只有导包之后才生效; 每个配置类中都有@enableconfigurtionProperties绑定配置文件类;
9.日志

      springboot的日志支持,logf4j2和logback,默认是logback,也是在核心的starter中导、入了loging的包,

10.web开发

mata-INF/spring/的配置类都绑定了配置文件类

springMVC的是spring.mvc web的通用是spring.web; 文件上传的是spring.servlet.multtipart; 服务器配置是server
静态资源规则:

也就是在类路径

11.内容协商
一套系统适配多个客户端, 可以通过请求头accept:,也可以通过请求行/person?format=json或者format=xml 默认开启请求头内容协商 spring.mvc.contentnegotiation.favor-parameter=true(开启请求参数的内容协商)
11.错误处理机制:

自动配置类是ErrorMvcAutoConfiguration

一般情况下,SpringMVC定义一个全局处理异常类

@ControllerAdvice
public class GlobalEx {
    
    @ResponseBody
    @ExceptionHandler(Exception.class)
    public String handlerEx(Exception e){
        return e.getMessage();
    }
}

服务器内部错误,会走自定义的异常处理,比如说controller中出现10/0;

数据整合:

创建mapper接口和mapper.xml, 在springboot上标注@MapperScan(basePackages = )(告诉mapper接口在哪里) 配置文件中mybatis: mapper-locations: classpath:/mapper/*.xml(告诉xml在哪里) mybatis: configuration: map-underscore-to-camel-case: true(驼峰命名规则)

基础特性

12.profiles环境隔离
 区分环境:(dev)开发,(test)测试,(prod)上线; 步骤: 标识环境:@profile({"dev"}) 激活环境:配置文件中           profiles: active: dev 配置文件:配置文件application-yml; application-dev.yml
13.外部化配置

优先级:命令行>yml>属性参数(springbootapplication)

                包外的>包内的(同级情况下比如都在包内:profile>默认的配置)

14.单元测试

        测试类必须和主程序启动类同包;

场景整合:

swagger(openAPI规范) 使用openAPI架构
         <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.2.0</version>
        </dependency>

http://localhost:8080/swagger-ui/index.html

比如说@Operation(description = "这是删除的方法")

远程过程调用

        不同机器的服务相互调用,服务提供者和消费者通过请求响应的方式相互作用;

        可以使用     dubbo,GRPC,或者cloud

面试题  :

        API和SDK的区别:SDK是开发工具包,本地jar包,API远程接口;

web安全
15.springsecurity整合
认证 授权 攻击防护 xss跨站脚本攻击 CSRF跨站请求伪造 CORS跨域请求共享 SQL注入

总结

### 文章总结:Spring Boot 概览与核心特性
#### 一、Spring Boot 简介
**1. 什么是Spring Boot**
- Spring Boot 提供了一站式的解决方案,用于快速创建Spring应用。
- 内嵌Tomcat服务器,提供可选的starter(如web starter),导入所有依赖。
- 自动配置,按需配置,约定大于配置。
- 提供生产级别的特性,如监控指标、健康监控、外部化配置无需源码改变。
**2. Spring Boot 开发步骤**
- **创建项目**:创建Maven工程,继承spring-boot-starter-parent。
- **导入依赖**:导入web需要的starter。
- **主程序**:创建启动类,加上@SpringBootApplication注解,运行run方法。
- **打包**:使用spring-boot-maven-plugin插件打包成jar包。
- **支持外部化配置**。
**3. Spring Boot 优点**
- **简化整合**:通过starter简化依赖管理。
- **简化配置**:使用yml配置文件。
- **简化部署**:打包成jar包,有Java环境即可启动。
- **简化运维**:便于修改配置、健康检查等。
**4. Spring Boot 的依赖管理**
- web-starter 会根据Maven的传递性导入所有依赖,无需写版本号,因为每个项目都继承parent项目,其中包含了依赖管理。
#### 二、核心特性
**5. 自动化配置**
- yml中的属性会与配置文件类绑定,按需加载。
- 导入web的starter会导入所有starter的基础spring-boot-starter,包含autoconfigure包,包中有所有场景的自动配置类。
**6. 注解**
- @Import:导入第三方的类进入容器。
- @Configuration:配置类。
- @ConditionalOn***:条件注解,如@ConditionalOnClass。
**7. 属性绑定**
- 通过@Bean和@ConfigurationProperties(prefix="pig")绑定配置文件中的属性。
- 或者使用@EnableConfigurationProperties。
**8. 自动配置原理**
- 导入web-starter,包含autoconfigure包。
- @SpringBootApplication由@SpringBootConfiguration、@ComponentScan、@EnableAutoConfiguration组成。
- @EnableAutoConfiguration通过@Import批量导入组件,根据META-INF/spring/autoconfigure文件按需加载。
**9. 日志**
- 支持Log4j2和Logback,默认是Logback。
**10. Web 开发**
- 配置文件绑定spring.mvc、spring.web、spring.servlet.multipart、server等。
- **静态资源规则**:类路径下的静态资源。
**11. 内容协商**
- 适配多个客户端,通过请求头Accept或请求参数format。
**11. 错误处理机制**
- 自动配置类ErrorMvcAutoConfiguration。
- 自定义全局异常处理类。
**数据整合**
- 创建Mapper接口和Mapper.xml,使用@MapperScan标注接口位置,配置文件中指定mapper-locations和配置。
**基础特性**
- **Profiles环境隔离**:区分开发、测试、生产环境。
- **外部化配置**:优先级为命令行>yml>属性参数>包外>包内。
- **单元测试**:测试类需与主程序启动类同包。
**场景整合**
- Swagger(OpenAPI规范):用于API文档生成和测试。
**远程过程调用**
- 不同机器的服务相互调用,可使用Dubbo、gRPC或Spring Cloud。
**面试题**
- API和SDK的区别:SDK是本地开发工具包,API是远程接口。
**Web 安全**
- Spring Security整合:认证、授权、攻击防护(如XSS、CSRF、CORS、SQL注入)。

更新时间 2024-08-27