文章分类 - springboot
springboot知识整理
摘要:总结:今天主要讲解一下jpa 的动态sql,用过hibernate 都知道有个qbc(动态sql),hql, jpa呢 加 jql,和标准查询 动态sql ,主要重写 findAll 代码如下: 解析sql 如下 select user0_.id as id1_0_, user0_.create_t
阅读全文
摘要:总结:通俗来讲,幂等就是 一次很多次 的处理产生的结果一样,这种东东叫做幂等性。 1. 从restfull 接口上来讲 # GET:读取(Read) 幂等 就是单纯的取数据 不会产生什么影响 # POST:新建(Create) 不幂等 需要处理 # PUT:更新(Update) 幂等 因为就算更新
阅读全文
摘要:总结:异步任务怎样快速实现呢 当然可以自己搞个线程池然后submit,spring4 里面提供一个注解 @Async 默认是 一个可缓存的线程池,最好是还是自己定义一个线程池大小,注意用注解 必须是能代理的,不然不会生效。 使用如下:开启异步 注意了:必须对象必须是能被代理的 不然重试 和 异步 都
阅读全文
摘要:总结:这篇博客有点难,本来不想写的,因为昨晚分析了几个小时,脑阔疼,所以这里还是随便聊聊吧。话不多说首先来张 百度的原理图。 看看他的组件 今天我要讲的的就是 handlerAdapter,他是个 什么鸡儿呢,其实全在这里 主要逻辑 其实就是 参数解析 和 数据 返回 再看 RequestRespo
阅读全文
摘要:总结:有时候程序会出现各种错误,比如网络抖动,链接超时,或者其他的一些情况,为了增加成功的机会,出错时候多重试几次 在业务允许的情况呀,提高成功的概率,那么重试尤为重要了,比如我就遇到过,接口返回下载链接 而根据下载链接 却下载不到 对应的文件(那是调用别人的开发票接口(怀疑他们是异步生成文件的))
阅读全文
摘要:总结:有时候我们异步处理结果,异步处理完成一半都是在处理的那端推送 消息(如 sms,极光或者自定义的推送消息系统)通知用户处理结果,不会立马返回处理后的结果,一般返回 排队中,或者处理中,前端轮询 查询结果 有时候在想 有没有 异步处理 同步响应结果呢,答案是有的,一般会设置超时时间,避免长时间等
阅读全文
摘要:总结:其实我是讨厌写文档的,但是又不得不写文档,写接口文档的工具 有很多,如: CrapApi ,APIJSON,superapi,java-api-doc ,sosoapi,yapi 等 这里随便写下一下 swagger 常用注解 如下: @Api:用在类上,说明该类的作用。 @ApiOperat
阅读全文
摘要:总结:锁分很多种,说起来都可怕,有些我自己都不是很清楚 具体可以参考 https://github.com/redisson/redisson/wiki/8.-%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E5%92%8C%E5%90%8C%E6%AD%A5%E5%99%
阅读全文
摘要:总结:解决网站的高访问量,有三大利器,缓存,降级,限流,我这里讲解一下 常用的几种限流手段。 单机 ,有型号量,令牌通,漏桶, 分布式,可以考虑从网关,redis ngnix, 阿里 Sentinel 等手段解决 。话不多说代码如下: 1.单机: 1.1 型号量 // 线程池
阅读全文
摘要:总结:灵活解耦,业务分离,单一责任,易维护 那么就可以使用观察模式了,例如:新用户注册 会有一系列的赠送活动(积分,优惠券等)。 单体项目 优先推荐guava 的 EventBus 其次spring Event 事件机制,服务分离 就可以考虑 分布式消息队列。话不多说 代码入下: 1.spring
阅读全文
摘要:总结:记录业务日志可以帮助自己留下证据,防止业务人员甩锅,所以系统一般有选择性的记录一些 业务日志。 步骤 如下,1.定义注解 2.aop 切入对于注解 3.线程池异步保存日志,4.使用起来美滋滋 代码如下: 注解 处理类
阅读全文
摘要:总结:读取配置文件直接读取也有 从git 如springconfig ,容器 Apollo 等,这里讲下直接读取的几种姿势。 1. 对象直接注入
阅读全文
摘要:总结:从文件上传谈 策略模式运用 ,虚拟路径配置,纸上得来终觉浅,绝知此事要躬行。 单文件,多文件,base64 几种上传方式 。具体细节参考我的代码库 https://gitee.com/www.lyc.com/lyc-demo.git
阅读全文
摘要:总结:aop 简单运用, 比如 1.系统长时间运行你怎样很容易找到 那些url 访问最多(一般80%的请求都在常用链接上 2,8 原则) 那些耗时较长 具体优化重点(不需要乱优化一通)阿里数据源可以监控sql 耗时(这里我提下) 2. 如何快速点位 那台服务器出问题 快速找到(如果服务器多了 日志寻
阅读全文
摘要:小结 :各种参数解析,其实就是 springmvc 适配性 的作用 叫做参数解析器,根据类型 匹配对应的数据 1.X 都是表单格式默认 为application/x-wwww-from-urlencoded 提交2.X 都是 json 格式application/json 其实就是内部jackson
阅读全文
摘要:1,小结 :springboot 各种参数校验 ,一般除了前端校验外,后台对接口 也要做强制参数校验(出于接口安全和参数格式不正确 考虑),规范考虑 一般对外提供的接口 或者 给别人调用 的公用方法(如工具类) 必须要求 强制参数校验 1.1,常规校验 1.2 ,分组校验 @Valid 注解是jav
阅读全文