[SpringBoot]知识点总结

springboot

springboot

springboot优势:

  • 快速搭建spring项目
  • 纯java配置不需要xml配置,开箱即用很少的配置就可以搭建J2E项目
  • 内嵌服务器可以快速部署

springboot基础配置

  • spring-boot-parent配置在pom.xml中,主要做java默认版本编码格式默认资源过滤插件等配置,是可以不使用该,进行更改的
  • @SpringBootApplicaton是一个由
    • @Configuration,配置类,
    • @EnableAutoCOnfiguration 开启自动化配置
    • @ConponentScan(完成包扫描),该注解默认扫描的类都位于当前类所在包下

Web容器配置

  • SpringBoot项目添加spring-boot-starter-web后默认为tomcat作为容器,可以在application,propertise中配置服务器,端口,项目出错跳转路径
  • 可以进行https配置
  • 配置Jetty,Undertow等服务器

类型安全配置属性

  • 无论是Properties还是YAML配置都会被加载到SpringEnvironment中,Spring提供了==@Value注解以及 EnvironmentAware 接口==,将SpringEnvironment中的数据注入到属性上
  • Spring Boot 对此进一步提出了类型安全配置属性 ,即使在数据量非常庞大的情况下,也可以更加方便地将配置文件中 的数据注入 Bean

application.properties
在这里插入图片描述
将这一段配置数据注入Bean

在这里插入图片描述

  • @ConfigurationProperties 中的 prefix 属性描述了要加载的配置文件的前缀
  • 此类配置可能会乱码,需要对中文进行转码,只需再IDEA/Settings做简单配置即可

Properties配置(YML配置)

  • 一些自定义的配置
  • YAML 的使用非常简单,利用缩进 来表示层级关系,并且大小写敏感

Profile配置

通过类似@Profile注解等解决方案,可以避免项目在开发环境/测试环境/生产环境之间来回切换时频繁大量的修改代码

springboot整合视图层技术

虽然目前前后端分离是趋势,但是视图层技术还是有一定的意义

  • thymelef
  • freemarker

springboot整合web开发

Json数据

  • spring-boot-starter-web默认添加了了 jackson-databind 作为 JSON 处理器,可以直接返回json
  • 前后端数据的主流传输方式为json
  • 注解@Responsebody可以返回json数据,频繁使用该注解时可以使用@RestController注解

静态资源访问

  • springmvc中需要手动对静态资源进行过滤
  • springboot提供了自动化配置

默认策略

  • springboot默认会过滤所有的静态资源,共有五个位置(任意位置下都会规律)
    • ”classpath:/META-INF /resources
    • classpath:/resources
    • classpath:/static
    • classpath:/public
    • /
  • 对于intellij可以将静态资源放在其默认创建出来的classpath:/static/目录下(一般都这样放置)
  • springboot项目默认是不需要webapp目录的
classpath
  • src 路径下的文件 在编译后都会放到 WEB-INF/classes 路径下。默认classpath 就是指这里
  • 用maven构建 项目时,resources 目录就是默认的classpath

自定义策略

@ControllerAdvice

  • @Controller增强版,主要用来处理全局数据,一般搭配@Exceptionhandler,@Modelattibute使用
  • 最常用的使用场景就是全局异常处理,配合@Exceptionhandler定义全局异常捕获机制

在这里插入图片描述

  • 添加@ControllerAdvice 注解即可。当系 统启动时,该类就会被扫描到 Spring 容器中
  • 后定义 uploadException 方法,在该方法上添加了 @ExceptionHandler注解,其中定义的 MaxUploadS izeExceededException. class 表明该方法用来处理 Max UploadSizeExceededException 类型的异常
  • 方法的参数可以有异常实例、 HttpServletResponse 以 及 HttpServletRequest 、 Model 等
  • 果想让该方法处理所有类型的异常,只需将 Max U ploadS izeExceededException 改为 Exception 即可

自定义错误页

  • springboot可以用@ControllerAdvice做全局异常处理,但是这种异常处理机制只能处理应用级别的异常而无法处理容器级别的异常,比如filter抛出的异常
  • springboot在用户访问出错时会有一个默认的页面返回给用户,可以进行自定义

CORS支持

  • CORS跨域资源共享技术标准,支持多种HTTP请求(JSNOP只支持GET)

  • 支持CORS的服务端在响应头中用Access-Control-Allow-Origin字

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值