58-springboot-4

1.回顾

技术栈,你需要用到哪些技术栈,在创建springboot的时候,直接勾选就可以了

配置原理,还是跟之前一样,把.properties文件给某个配置bean赋值,然后就可以用这些配置bean去搞事情了

2.springboot对静态资源的映射规则

所有/webjars下的请求都去META-INF/resources/webjars/下找资源,webjars让我们可以用jar包的方式使用前端框架(maven)

我们在resource.properties里面设置和静态资源有关系的东西

/**

如果访问任何一个请求,会按照springboot的默认规定在多个文件夹下找

但是考虑到之后前后端分离,不写jsp,这里就不写哪些文件夹

从根路径java/resource往下多种方法都可以放

3.欢迎页

静态资源文件夹下的所有index.html页面

图标也是在静态资源文件下找

到时候vue写好的直接首页写index

自定义静态资源位置

直接在application.properties可以自定义,定义了以后以前的默认的就无法使用了

4..模板引擎

现在讲了很多关于thymeleaf的。。。很蛋疼,到底学不学,姑且了解一下吧,到时候还是用前后端分离,所以本章关于thymeleaf都只简单做一下了解

5.Springmvc

springboot自动为springmvc配置

①viewresolver,视图对象决定如何渲染,我们自己可以给容器中添加一个视图解析器,但是我们搞前后端分离,所以这玩意还是不配

②converter、formatter

需要的时候,自己配置converter&formatter

③HttpMessageConverter同样也是直接加到容器就行了

6.springboot的配置模式

springboot在自动配置很多组件的时候,先看容器中有没有用户自己配,如果有,就用用户配置的,如果没有才自动配置;如果一些组件可以有多个,可以把默认的跟用户自己配置的组合起来

7.自定义springmv配置

自己想配置springmvc的时候,想扩展springmvc的功能,继承WebMvcConfigurerAdapter,然后重写其方法就可以了,特点:既保留了所有的自动配置,也能用我们扩展的配置,如果我们想全部自己弄,那么就要加@EnableWebMvc,所以这句话谨慎使用,一旦加了以后自动配置的就全部失效了。

原理就是:@EnableWebMvc将WebMvcConfigurationSupport组件导入进来,所有的自动配置就都会失效,按照springmvc的要求自定义的东西,一定要要添加到容器中才会生效,所以要加@Bean

8.国际化

一般情况下写3个properties,一个是跟page相关的,然后一个en一个zh

然后把所有的变量抽取出来

这个springboot也会给自动配置,然后其放在resource下面,命名为一个叫做messages.properties就可以了    

国际化是根据你的浏览器信息自动设置的,通过一个区域信息对象来读取的,这里也会出现在请求头的lang里面

如何实现国际化切换,自己写一个区域信息解析器,之前的是解析请求头,我们这里换一下

9.默认修改全局设置

在.properties文件里面修改的时候,这个编码有问题,在idea的settings里面仅仅针对本工程,想要修改idea的默认设置,还是要进入default-setting里面进行设置

10.表单/拦截器

这里的表单提交,之前写的是一个bean来接收,其实可以写一个name然后用单个的key去接收也是可以的,这里注意一下,如果登录成功以后,刷新重新提交表单的话,最好的防止的办法就是重定向(意思就是,登录成功以后直接重定向到一个页面)但是,这里的页面不需要登录,直接就可以访问了,这里还是需要拦截器,每次登录前检查一下token/username,在配置拦截器的时候,设置拦截路径,不能把登录页面或者登录请求也拦截了,但是一些静态资源也是要设置,不然根绝不同的版本可能也会被拦截

11.formatter

修改默认的date-format

在application.properties里面设置就可以了,主要是修改日期格式

12.springboot默认错误处理机制

①如果是h5默认会返回一个空白页,提示错误代码等信息

②如果是客户端,那么会返回一个json

③定制错误响应:页面和定制json

④系统出现错误以后,这里会默认跳转到/error

⑤DefaultErroViewResolver来指定error了以后去哪个页面

如何定制错误页面:

    有模板引擎的情况下,可以按照springboot的设置要求来,替换默认的错误页面,比如4xx.html,精确优先

    没有模板引擎:在静态资源文件夹下面找

    都没有:springboot默认的错误页面

如何定制错误json:

    ①自定义一个异常处理器, 用@ExceptionHandler捕获所有controller层的异常,在类的上面有标注@ControllerAdvice注解,捕获到异常以后,然后return回去;这种是没有自适应效果,不管浏览器还是客户端全部都返回的json

    ②通过reqeust添加一个attribute,然后传一个我们自己的状态码,但是这样还是不能返回我们自己写的json错误信息,这里给容器里面加入一个自己定义的errorAttribute,里面可以加一些错误信息,然后也可以从request的域对象里面拿到我们在之前的异常处理器里面set的一些错误信息

13.Advice

关于springmvc的异常捕获,之前没接触过,或者说是接触过忘记了,现在重新拾起来看看,主要是关于controller层的一个aop

ref:https://blog.csdn.net/zxfryp909012366/article/details/82955259

14.配置嵌入式servlet容器

①如何定制和修改servlet容器

修改与server有关的配置,直接就是在application.properties里面修改

②通用的servlet设置

都是用server.xxx设置,而tomcat的直接就是:server.tomcat.xxx

③编写嵌入式的tomcat的容器的定制器

EmbeddedServletContainerCustomizer

tips:我们可以在properties里面写配置,以后还会遇到很多configurer和custmizer来进行配置

15.注册servlet三大件

①servlet

配置好一个我自己写的servlet,然后用ServletRegistrationBean,把这个bean返回到容器

②Filter同上FilterRegistrationBean

③Listener同上ListenerRegistrationBean

16.使用其他嵌入式容器

springboot默认的是使用tomcat

除此之外,springboot还支持Jetty(长链接)和Undertow(不支持JSP)

这里直接跟那个更换日志包一样,打开show diagrams,找到依赖关系,把tomcat去掉,加入jetty就可以了

17.嵌入式servlet容器自动配置原理

jett,tomcat,undertow,都有一个EmbeddedServletContainer

通过一系列的定制器来做:

①通过依赖情况,会给容器添加相应的EmbeddedServletContainerFactory

②然后成功会惊动一个后置处理器EmbeddedServletContainerCustomizerBeanPostProcessor

③后置处理器从容器中获取所有的EmbeddedServletContainerCustmizer,调用定制器的方法

这里简单的了解一下就可以了

18.使用外置的Servlet容器

优点:快,简单

缺点:无法使用JSP(这不是优点?呵呵)、无法深度优化和定制

如何使用外置servlet容器:外置tomcat,打war包

这里注意一下,在使用外置tomat打包的时候,关于springboot的tomcat包,下面scope要写provided,意思就是我打包成war以后肯定是要部署到tomcat的,这个包打包的时候不用打

最后传主application到ServletInitializer这个类里面就可以打包了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值