springboot
文章平均质量分 78
小咸鱼的技术窝
独立全栈开发工程师一枚,熟读JDK、SSM、SpringCloud生态源码。
个人产品:www.xxyfy.cn
微信公众号:小咸鱼的技术窝
个人微信:zh114418
展开
-
spring之@import探究应用
本文先介绍@import的用法(很简单的一个东西)接着结合源码来分析@import是如何生效的,当我们想往容器中注入一个bean的时候我们首先就会想到@bean、@Compoent、@Repository这些注解,除此外其实我们还可以使用@import来进行手动装配。用法配置类导入对应的组件即可:@Import({a.class,importSelect.class,handlerRegisterImport.class})效果:给ioc容器中分别注入了a、select、handlerBean三个原创 2021-09-02 14:40:08 · 146 阅读 · 0 评论 -
搞懂@ConfigurationProperties、@ConditionalOnProperty、@ConditionalOnMissingBean一篇文章就够了
本文概述@ConfigurationProperties(ignoreInvalidFields = xxx,ignoreUnknownFields = xxx)作用参数ignoreInvalidFields =true解析参数ignoreUnknownFields = false解析参数prefix = "a"解析各种数据类型绑定对照代码获取@ConfigurationProperties(ignoreInvalidFields = xxx,ignoreUnknownFields = xxx)作用把配原创 2021-02-01 16:39:32 · 2010 阅读 · 0 评论 -
序列化之@JsonComponent、@JsonInclude、@JsonSerialize、@JsonIgnore、JsonProperty区别与联系作用
前言:很多时候,例如前端需要字段user可能只是需要用到user中的userName属性,而后端传过去的却是一整个user对象,这样显然是不行的。那有没有一种技术,可以把后端传给前端的user类型的值改变为userName类型的值呢?@JsonComponent、@JsonInclude、@JsonSerialize可以在序列化的时候动手脚,可以自定义返回给前端的序列化的对象的值。完美解决这个问题。本文概述@JsonSerialize常见用法标注在类上面用法标注在属性、get方法上@JsonIgnor.原创 2021-01-31 21:45:17 · 1737 阅读 · 0 评论 -
springBoot项目中yml文件${REDIS_HOST:127.0.0.1}写法解析
spring: redis: database: 2 host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379}host: ${REDIS_HOST:127.0.0.1}表示从配置文件yml中或者启动命令中读取REDIS_HOST的值,如果从命令行中没有读取到REDIS_HOST的值,就是用默认值。这样的好处是换一个新的环境时,不用改配置文件,直接在启动命令上指定值就可以。例如:java -jar -REDIS_HOST=1原创 2021-01-29 16:40:22 · 3661 阅读 · 0 评论 -
利用aop、拦截器HandlerInterceptor来实现接口限流,日志收集
前言:aop是面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。拦截器是web请求中一个请求周期中的一环就实现接口限流这个需求来说,用aop和HandlerInterceptor都可以来实现,就是在调用接口之前做一些约束而已。aop+自定义注解+Semaphore实现接口限流自定义限流注解/** * @author 张子行 * @class 限流注解,秒级访问多少次 */@Retention(RetentionPolicy.RUNTIME)@Documen.原创 2021-01-21 11:17:36 · 1193 阅读 · 2 评论 -
数据前置参数类型转换@InitBinder、Formatter<?>、Converter<?>的使用
前言:在很多时候我们在进行调用接口的时候,传入的参数类型不是指定的特别明确(或者是不能进行自动类型转换),会导致调用接口失败的情况出现,如果我们在调用接口之前进行数据格式化,手动进行数据类型转换,那么就不会出现调用接口失败的情况出现了。这些注解无非也就是做这些工作的。下面列举工作绝大部分用到的场景 @ResponseBody @RequestMapping(value = "/bookDo", produces = "application/json" , c.原创 2021-01-13 12:03:33 · 514 阅读 · 1 评论 -
springboot+mybatis-plus+redis整合(附上脚手架完整代码)
首先新建一个springboot项目next到这里的时候,我们可以选择用jdk几,还有就是group,这个一般就是com.公司名字了,artifact就是项目名字。个人开发我还是喜欢用com.名字前缀哈。到了这一步的话,如果对这个项目有什么别的需求,比如需要用到mybatis啥的可以勾相应的选项。其实就是idea自动帮咱导入相关的依赖。这里我们暂且啥也不勾。写过这么多的项目,咱们自己整合的依赖还是挺香的哈。2:导入依赖可能我比较懒,喜欢用mybatisplus,这些是整合mybatisplus需要原创 2020-09-23 18:02:00 · 5756 阅读 · 2 评论 -
正确理解springboot国际化简易运行流程
localeResolver 国际化视图看源码可以看出–》原理(默认的就是根据请求头带来的区域信息获取Locale进行国际化)返回的本地解析是根据响应头来决定的接着按住ctrl点localeresolver可知localeresolver是一个接口于是有了这些我们只需通过继承WebMvcAutoConfiguration来重写中的方法就可以达到我们国际化的目的了。测试1:编写国际化文件2:前端代码3:效果(可以随意切换)如果出现乱码则(这样配置),如果还不行把项目的编码设置为u原创 2020-09-29 15:34:39 · 175 阅读 · 0 评论 -
利用aop实现热拔插(类似于插件)
{ "name":"aop插件", "configs":[{ "id":"1", "name":"测试插件", "active":false, //加载类 "className":"com.zzh.pluginLog", //"className":"com.destiny.plugin.TestPlugin", // jar包路径 "jarRemoteUrl":"jar:file:/D:/com/zzh/pluginLog.jar!/原创 2020-09-05 12:37:21 · 1716 阅读 · 1 评论 -
springboot中优雅的个性定制化错误页面+源码解析
boot项目的优点就是帮助我们简化了配置,并且为我们提供了一系列的扩展点供我们使用,其中不乏错误页面的个性化开发。理解错误响应流程我们来到org.springframework.boot.autoconfigure.web.servlet.error下的ErrorMvcAutoConfiguration这里面配置了错误响应的规则。主要介绍里面注册的这几个bean(DefaultErrorAttributes,BasicErrorController,ErrorPageCustomizer,Default原创 2020-10-04 16:10:40 · 382 阅读 · 0 评论 -
springboot项目结合filter,jdk代理实现敏感词过滤(简单版)
我们对getParameter()这个方法得到的参数进行敏感词过滤。实现思路:利用过滤器拦截所有的路径请求同时在在过滤器执行的时候对getParameter得到的value值进行过滤。最后呢,到我们自己的实现的逻辑中呢?这个value值就被我们做过处理了。1:自定义的过滤配置文件把文件位置放在resource下的static目录下,内容如下2:编写我们的过滤器遇到的问题:拿取不到resource/static/sensitive.txt文件。好在解决了哈哈哈哈哈哈看代码吧!!!!@WebFil原创 2020-09-29 17:24:30 · 1576 阅读 · 3 评论