目录
一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.yml13.外部化配置
优先级:命令行>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注入)。