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

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

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

10.web开发

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

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

也就是在类路径

11.内容协商
  1. 一套系统适配多个客户端,
  2. 可以通过请求头accept:,也可以通过请求行/person?format=json或者format=xml
  3. 默认开启请求头内容协商
  4. 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;

数据整合:

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

基础特性

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

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

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

14.单元测试

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

场景整合:

  1. swagger(openAPI规范)
  2. 使用openAPI架构
  3.          <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

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

远程过程调用

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

        可以使用     dubbo,GRPC,或者cloud

面试题  :

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

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

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值