DispatcherServletAutoConfiguration 自动配置
今天来学习下DispatcherServlet的自动配置在我们日常的开发中除了CharacterEncodingFilter之外,DispatcherServlet 也是必不可少的一个配置。
DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);
3、通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);
4、通过ViewResolver解析逻辑视图名到具体视图实现;
5、本地化解析;
6、渲染具体的视图等;
7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。
首先在Spring mvc框架的web.xml文件中必不可少的会有以下配置
1234567891011121 ...
HttpEncodingAutoConfiguration源码解析
在进行日常网页开发的时候,不可避免的会用到CharacterEncodingFilter,此拦截器用于解决网页开发中的编码问题。
在SpringBoot开发中HttpEncodingAutoConfiguration就成为不得不学的一个自动配置类
配置类声明打开该自动配置类可以看到该类上加的注解
123456789101112//指明是配置类@Configuration(proxyBeanMethods = false)//注解的beans将自动被Environment属性配置@EnableConfigurationProperties(HttpProperties.class)//只有在Web环境下生效@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)//该类存在时生效@ConditionalOnClass(CharacterEncodingFilter.class)//存在该属性时生效 同时指定缺省默认值@ConditionalOnProperty(prefix = &quo ...
fastjson转换泛型问题
在Java开发中经常遇到数据对接的情形,通过接口请求返回json数据,然后对数据进行解析处理,为了通用,经常会有一个通用返回结果类
如下
123456789101112131415161718192021222324252627282930313233343536373839public class ReturnResult<T> { private Boolean status; private String message; private T data; public Boolean getStatus() { return status; } public void setStatus(Boolean status) { this.status = status; } public String getMessage() { return message; } public void set ...
docker重启后自动重启容器
由于本人刚开始学习docker没多久,每此docker重启后都需要手动启动容器,很麻烦
本文记录下如何在docker重启后自动重启容器
有两种方式
1、在创建容器时加入参数在创建容器时添加 --restart=always即可
2、对于已经创建的容器可以更新1sudo docker container update --restart=always 容器名或id
Servlet、Filter、Intecepter、Listener
本文介绍下SpringBoot中如何对这几者的注册与使用
SpringBoot有两种方式注册Servlet、Filter、Listener
1、代码注册:使用 ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean进行注册;
2、 在 SpringBootApplication上添加@ServletComponentScan 注解后,Servlet、Filter、Listener 可以直接通过 @WebServlet、@WebFilter、@WebListener 注解自动注册
Servletservlet是一个用户请求。
servlet的匹配规则:从精确到模糊,匹配到之后不会管其他
比如:servlet1的url-pattern 是/test,serlet2的url-pattern是/*,访问的url为 http://localhost:8080/test ,容器就会先进行全路径匹配,发现正好被servlet1精确匹配,就不会去管servlet2
1、通 ...
网页标题搞怪特效
本文介绍下如何给Hexo NexT 主题中添加网页标题特效
准备工作新增tittlecheat.js 在next\source\js\oiyou文件夹下创建tittlecheat.js,添加代码:
123456789101112131415161718<!--崩溃欺骗--><!--其中注释部分需要jquery--> var OriginTitle = document.title; var titleTime; document.addEventListener('visibilitychange', function () { if (document.hidden) { //$('[rel="icon"]').attr('href', "/img/TEP.ico"); document.title = '╭(°A°`)╮ 页面崩溃啦 ~'; clearTime ...
github博客(nexT主题)开启gitalk
记录github博客开启gitalkgitalk: 一个基于 Github Issue 和 Preact 开发的评论插件,方便用户交流
准备工作注册github OAuth Apps 链接
点击注册后跳转到成功页面
修改主题下配置文件(netx/_config.yml)
12345678910gitalk: enable: true github_id: github账号 # 如huangboo461 repo: 仓库名称 # 如huangboo461.github.io client_id: Client ID # GitHub Application Client ID client_secret: Client Secret # GitHub Application Client Secret admin_user: github帐号 # 指定可初始化评论账户 distraction_free_mode: true # 设置语言: en | es-ES | fr | ru | zh-CN | zh-TW language: zh-CN
至此 ...
修改npm安装路径
修改npm安装路径 对于新手来的我说:修改之后,自定义安装的命令无法执行,我就直接把这里注释掉了,安装的时候默认是nodejs安装路径\node_modules下,就可以直接使用
这里还是贴出修改方法,待以后深入后寻找原因:
npm默认安装路径为${APPDATA}\npm,对于一个强迫症而言是很不爽的,这里介绍下如何修改。
通过配置文件(路径:nodejs安装路径\node_modules\npm\npmrc)
修改如下即可:
prefix = D:\nodejs\npm
修改完成后可使用 npm root -g查看
github+hexo部署博客
github+hexo部署博客本问讲述如何使用github+hexo搭建静态博客
1、github创建仓库2、博客开发1、安装nodejs 注意:对于新手来说,如果想要修改npm安装路径,只需要将npmc中配置(路径:nodejs安装路径\node_modules\npm\npmrc)注释即可,默认路径即为nodejs安装路径\node_modules下。
2、安装hexo-cli 使用npm安装hexo
1npm install -g hexo-cli #-g参数含义:
安装成功后,初始化博客
1hexo init blog
执行完毕后会生成blog文件夹
1cd blog
检测我们的网站雏形,分别按顺序输入以下三条命令:
123hexo new test_my_sitehexo ghexo s
访问地址localhost:4000,出现以下即为成功
现在来介绍常用的Hexo 命令
123npm install hexo -g #安装Hexonpm update hexo -g #升级hexo init #初始化博客
命令简写
123456 ...
使用github自建博客时遇到一个坑
配置发布路径 在使用hexo d 命令时,什么输出都没有,也没有报错,这是要检查下配置文件里面的空格问题
