![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
编程菜农
看书只会让大多数新知正常的人更知道谦虚……当然,不看书只想吹牛皮也可以很开心的生活。
展开
-
PageHelper 踩坑:不安全分页
结论先行主要原因:PageHelper使用了静态的ThreadLocal参数,让线程绑定了分页参数, 这个参数如果没被使用就会一直留在那儿,当这个线程再次被使用时,就可能导致不该分页的方法去消费这个分页参数,这就产生了莫名其妙的分页。照成原因:PageHelper.setPage(1,10);if(param!=null){ list=userMapper.selectIf(param)}eles{ list=new ArrayList<User>();}//这样子如果par原创 2021-08-02 11:04:29 · 930 阅读 · 0 评论 -
JAVA集合--ArrayList集合分析
今天在看HashMap源码的时候突然涉及到了ArrayList的源码,现在来回忆下:ArrayList:Arraylist是一个实现List的可变数组,可以存储所有元素包括null;在此次源码的分析上总结可以优化的问题是:因为ArrayList是自动增长,随着ArrayList中不断增加元素;自动增长的话需要进行数据的重新拷贝,所以如果可以预知数据量的多少,可以在初始化ArrayList的时候就指定其容量,这样可以减少大量的数据重新拷贝操作,因为默认容量才10;其次也可以在应用程序使用其ensureCa原创 2020-08-10 23:35:29 · 152 阅读 · 0 评论 -
HashMap/HashSet有时出现输出有序问题,即源码分析
我们都知道Set的集合是无序集合的,但是有时却会出现有序;HashSet/HashMap一起说是因为HashSet底层实现就是HashMapHashSet<Integer> hashSet = new HashSet<>(); hashSet.add(3); hashSet.add(1); hashSet.add(7); hashSet.add(5); hashSet.add(4); S原创 2020-08-10 12:08:26 · 703 阅读 · 1 评论 -
OAuth2与JWT(单点登录)
什么是单点登录?现在的应用几乎都是分布式,实现一方遍登录,分布的模块都不需要在进行登录授权比如你在百度贴吧上登录了你的百度账号,在进入到贴吧的网页版,此时你是不需要重新登录就可以访问贴吧模块那么单点登录的实现?1:使用session广播:将存入sesion的信息分发到各分布的模块中,进行复制。这种方式的话在如今局限比较大,在并发小的时候是可以用。因为这种方式限制了横向session的扩张,每个模块中的session都是所有模块的session信息2:使用redis+cookie实现:使用re原创 2020-07-29 23:38:24 · 1615 阅读 · 0 评论 -
分布式系统session一致性的问题-分析-解决思路(SpringSession的整合)
如果做分布式的系统,必然会遇到session一致性的问题在传统单机web应用中,一般使用tomcat/jetty等web容器时,用户的session都是由容器管理。浏览器使用cookie中记录sessionid,每次发送请求的时候会带上这个sessionid,web容器根据sessionid找到当时在服务存储信息时使用的那个Map,以此判断用户是否存在会话session。注意:最大的问题是,session存储在web容器中,被单台服务器容器管理。在分布式情况下,这会导致什么?首先回顾一下ses原创 2020-05-24 23:26:06 · 473 阅读 · 0 评论 -
使用-Lombok(小辣椒)插件简化javabean开发(mac环境STS=eclipse)
Lombok简介和理解Lombok是个什么插件:简单来说使用Lombok能大大的简化冗余的JavaBean代码,不仅能大大提高开发效率,还能大大提高Java中方法的执行速度进入官网Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method ag原创 2020-05-15 00:58:08 · 766 阅读 · 0 评论 -
搭建-swagger2-swagger使用教程-实时生成接口文档-使用教程(springboot)
Swagger简介Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。现在开发的趋势都是分布式开发,所以对于生成接口文档也是一个十分重要的步骤,swagger刚好帮我们解决了这个问题,不仅可以生成文档,还可以在线进行接口的测试,十分之方便,现在我们来快速原创 2020-05-14 23:45:52 · 474 阅读 · 1 评论 -
SpringBoot整合集成Durid,mybatis,redis(快速)+日志框架的使用(slf4j+logback)
如果采用springcloud开发项目。因为每个微服务都是独立的项目,所以数据库也是有可能是独立的,并且有可能是不一样的数据库;本演示的数据源采用druid和mysql数据库;如果要用其他也差不多方式先整合数据源先在子工程中增加对druid数据源/mybatis/rdis/jdbc的依赖引入引入后呢 接下来就是对其的配置啦->application.yml中配置:spring: datasource: username: xxx password: xxx原创 2020-05-14 20:51:29 · 360 阅读 · 0 评论 -
Hystrix服务熔断手把手搭建RestTemplate方式和Feign方式),同时开启可视化监控Hystrix Dashboard
服务熔断(简单描述)当链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回”错误”的响应信息画了一个简单图:简单来说就是当D服务频繁超时,熔断器会将其短路,快速返回兜底数据,也就是假数据,然后不在访问D这个点;如果不及时短路d点; 很大可能会造成雪崩同时还有原理:我们可以指到熔断器被打开是有一定的阀值的我们先搭建RestTemplate+Ribbon+Hystrix这种模式首先 我们得在pom.xml中引入hystrix<depe原创 2020-05-13 00:44:45 · 456 阅读 · 0 评论 -
SpringBoot-自动配置原理,顺带复习下元注解
简单阐述springboot-自动配置的原理springboot中有一个spring-boot-autoconfigure-2.0.7.RELEASE.jar的包可以看到这里有很多场景的配置比如配置了starter-web ;首先看到主程序下图:可以看到传进去了主程序的类,根据反射机制,框架是可以获取到这个类上标记的注解;主程序标注了 @SpringBootApplication...原创 2020-04-30 00:09:45 · 143 阅读 · 0 评论 -
SpringSecurity框架分析和UsernamePasswordAuthencationFilte表单认证过滤器的源码分析
进行debug断点首先是在UserDetailsService的实现类中的sql语句进行断点,项目中的首先的过滤器是applicationFilterChain 这个过滤器是tomcat容器来管理过滤器链,且作用是将项目中分散的过滤器组织起来,也就是职责链模式,简单来说因为执行的过程是一个入栈的过程,所以这个过滤器是整个指责链的头且还负责收尾;因为我们要看的是SpringSecuri...原创 2020-04-27 11:27:39 · 343 阅读 · 0 评论