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字