- 博客(43)
- 收藏
- 关注
原创 nacos配置数据库,实现配置文件的持久化
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)
2021-07-07 16:43:47 1323
原创 springboot+springsecurity+springsession实现session共享
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、前言在工作中遇到多系统时,比如oa人事相关的是独立的系统,在其他系统登录后,在这个系统不应该再让用户重新登录,想实现一次登录,多系统session共享,有很多种实现方式,针对web业务可以使用springsession,如果是移动端业务可以使用jwt的token,今天主要记录spring session。二、jar包准备在此之前已经整合
2021-06-22 14:57:26 1830
原创 Spring:ApplicationEventPublisher事件发布与监听
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、概述Spring的事件机制是观察者模式的典型,跟发布订阅模式也十分接近,被观察者发布事件,观察者监听到事件,然后处理事件。这个模式的应用场景有用户注册等,比如用户注册后需要给用户发送优惠券,这时用户注册就是被观察者,事件是发送优惠券。二、实现1、事件首先需要定义事件,继承ApplicationEvent类public class O
2020-10-21 17:53:48 879 4
原创 Spring 注解:@Async
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、概述1、Java执行顺序默认是同步的,代码是逐条执行,当需要调用三方的接口或者耗时的方法时可能会造成接口的响应时间变长。有些时候我们不关心三方接口的返回结果,那么以前的话是使用多线程来解决这个问题,将耗时的方法或者请求三方的方法单开线程来处理。2、使用@Async注解的方法可以使方法被异步调用,底层其实也是使用的线程池来实现的。二、源码
2020-10-14 14:28:19 318 2
原创 Java接口有多个实现类,按照排序调用每个实现类重写的方法
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1、目标接口public interface IEventDriver { /** * 触发事件 * * @param event 事件 * @return 是否冒泡, true不往下传递事件, false继续往下传递 */ boolean trigger(BaseEvent
2020-09-28 10:23:10 1739 5
原创 Java8特性:lambda表达式
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、概述以前我们在实现接口时,一般是写一个实现类,然后重写需要调用的方法,如果不想创建实现类,就使用匿名内部类来重写方法。public interface MyInterface { void test();}实现类重写方法public class MyInterfaceImpl implements MyInterface
2020-09-10 15:02:57 156
原创 Java接口有多个实现类,根据不同的业务场景创建不同的实现类实例
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.概述有的时候,需要一个接口根据不同的业务场景实现不同的功能,比如支付接口有多个运营商,不同的运营商的对接方式不同,但是对自己本身的系统来说,入口应该只有一个,就是调用的接口是同一个,不过有不同的实现类,来完成不同的支付方式的对接。2.上代码用户的授权接口,根据不同的传参调用不同的认证方法,验证方法有:校验密码、校验密码和验证码等等,这个
2020-09-02 17:25:08 6803 5
原创 java后台实现Excel的导出:easypoi实现
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.概述在企业的后台系统中,报表导出是经常会有的一个功能,比如每个月导出订单,...
2020-08-27 10:46:29 795
原创 mysql数据库详解(五):日常开发收集的问题点
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1、存在则更新,不存在则添加insert into table_name values (...)ON DUPLICATE KEY UPDATE 需要更新的字段=值,,需要在表设置唯一索引,当唯一索引值重复就更新,不重复就插入2、order by排序,desc倒序排列 asc默认正序排列,如果想要多列排序,则以逗号分开 order b
2020-08-26 18:40:32 163
原创 nginx的配置,实现反向代理、负载均衡
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.nginx的作用nginx是一个轻量的Web和反向代理服务器,可以实现:1.服务器静态资源的访问2.反向代理,通过监听端口/域名将请求转发给指定的服务器3.负载均衡,通过反向代理使客户端的请求nginx,然后转发给不同的服务器,实现负载均衡。2.nginx的配置文件//启动nginx的用户和所属组,默认是nobody,如果在访问时
2020-07-17 16:48:19 231
原创 mysql数据库详解(四):基础知识
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、数据库三大范式第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。1、数据库三大范式是什么...
2020-04-08 16:46:29 306
原创 mysql数据库详解(三):索引与sql优化
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、索引是什么索引是一种可以高效查询的数据结构。数据库的查询是经常被使用的操作,我们往往希望查询的效率高,如果是按照顺序查找的方法,当数据量变大的时候,查询效率就会变得非常低,所以mysql的开发者设计了索引来优化查询效率。二、索引...
2020-03-24 16:57:53 295
原创 mysql数据库详解(二):mybatis与springboot整合
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、引入相关的jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...
2020-03-23 15:47:22 213
原创 mysql数据库详解(一):sql语句
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一.语句分类1.DDL(Data Definition Languages)数据库的定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMME...
2020-03-20 15:02:26 602
原创 redis缓存数据库详解(六):高可用方案
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)概述redis在实际应用中安装部署的方式有所不同,如果对数据没有持久化的要求,只是为了提高读取数据效率,可能会采用单机模式;但是生产环境中基本上都会要求持久化数据,备份数据,节点失效转移等,那么这时候单节点部署就不能满足了,下面就介绍...
2020-03-06 17:06:29 379
原创 redis缓存数据库详解(五):分布式锁的实现
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.锁锁是为了控制高并发而产生的,多个线程访问同一个资源、用户多次提交等等都是高并发的情况,带来的影响就是数据不正确。比如提交订单,用户点击很多次,如果代码里不加控制,就会产生多条订单数据。线程锁:主要用来给方法、代码块加锁。当某个...
2020-03-04 14:16:37 664
原创 redis缓存数据库详解(四):redis与springboot整合
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)概述在之前的一篇文章中介绍了redis的数据结构,以及每种数据结构对应的命令,这些命令是通过redis-cli连接redis服务器后,直接在控制台中输入的。所以本片文章介绍怎样实现在代码里操作redis。一、引入依赖<dep...
2020-03-03 11:07:44 414
原创 redis缓存数据库详解(三):redis的持久化
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)redis的持久化1.因为redis是把数据存放在内存中,如果没有持久化的机制,redis关闭后数据就全部没有了,所以为了在redis关闭再次启动后数据还能再次被加载到内存里,就需要有持久化的机制。将内存中的数据存到磁盘中。2.re...
2020-02-29 17:28:13 206
原创 redis缓存数据库详解(二):redis的数据结构及基础命令
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.redis的数据结构redis数据库不像mysql关系型数据库,使用表来存放数据,redis是使用key-value的形式来存放数据的,支持的数据类型有:String,list,set,zset,hash。2.String类型的...
2020-02-28 18:16:11 431
原创 redis缓存数据库详解(一):config文件详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.redis是什么?1.redis是一种可以高效存取的数据库,支持多种数据结构,比如字符串、集合、hash等等。2.redis是把数据存放在内存里,从而使得数据的读写都是发生在内存里,速度十分的快,然后通过一定的机制持久化到磁盘。...
2020-02-28 11:52:23 1060
原创 Spring的AOP详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)一、AOP1.什么是AOP1.AOP是面向切面编程,与OOP的纵向继承特点相比,AOP关注的是横向功能的扩展,OOP的最小单位是类,AOP的最小单位是切面。2.AOP是为了提取出重复的代码,减少代码的冗余,切面就是这些重复代码提取...
2020-02-25 15:47:30 396
原创 Java常用类:AtomicInteger类详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)AtomicIntegerAtomicInteger类是为了解决多线程下并发修改同一个变量的问题,以下例子num的值不会等于30000,总是小于30000的,因为没有做同步操作,多个线程操作同一个变量使得结果不正确。public c...
2019-12-23 18:12:58 415
原创 Linux:bash讲解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)bash介绍bash脚本是Linux系统上的一个可执行文件,相当于Windows系统中的.exe程序。bash脚本基本命令一、符号1.# 注释为了使脚本的可读性更强,在脚本中写入注释2.;语句结束bash中,换行即代码一行...
2019-12-21 14:51:05 322
原创 Java常用类:Date详解,以及Date,String之间的转换
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)DateDate是jdk中的日期类,不过里面的很多方法都已经过期了,不能被继续使用,所以现在Date类里能使用的方法不多。构造方法这里主要是介绍常用的构造方法,被@Deprecated注解的方法就没列出了。//无参构造方法,创建...
2019-12-09 17:37:57 258
原创 Java常用类:Arrays类详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)Arrays数组的工具类,主要是提供了一些对数组操作的一些方法。方法举例1.sort排序int[] a = {14,2,37,12};//支持的排序类型int long short char byte float double...
2019-11-28 16:51:29 233
原创 Java常用类:Collections详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.Collections首先区分下Collections和Collection,前者是集合的一个工具类,提供了非常多的便捷方法操作集合;后者是集合的鼻祖接口2.主要方法1.sort排序List<String> li...
2019-11-27 17:52:41 545
原创 Java常用类:ThreadPoolExecutor线程池
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)为什么需要线程池首先举例一个业务场景,也是日常开发中经常会遇到的场景,手机短信验证业务。短信验证在很多业务场景中都会遇到,比如验证码登录,短信提示余额不足等等。类似这种不影响主线程业务的,在访问量很大的情况下,就需要考虑使用多线程开...
2019-11-26 18:23:43 367
原创 集合的区别、适用场景以及如何排序(List,Map,Set)
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)1.层级关系图Map是不在Collection下的,是单独的一个体系。1.有序和无序ArrayList,LinkedList,LinkedHashMap,LinkedHashSet是插入有序的,TreeMap和TreeSet是...
2019-11-09 15:59:21 317
原创 Java常用类:HashSet类详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)HashSetHashSet存放的是无序的,去重的数据集合,看源码的话可以发现HashSet能做到去重是因为底层维护了HashMap,用HashMap的key来当HashSet的元素,因为map的key不会重复,所以HashSet的元...
2019-11-09 11:30:43 204 1
原创 Java常用类:HashMap类详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)HashMap本文的分享是基于jdk1.8版本1.数据结构HashMap底层的数据结构是数组+链表,基本的数据单位是Node<K,V>,包括key,value,next。HashMap以key的hash值为数组下标查...
2019-11-04 16:10:23 705
原创 Java常用类:LinkedList类详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)LinkedListLinkedList也是有序集合之一,这里的有序是指放入集合的顺序,不是指按照元素大小排序的。与同样是有序集合ArrayList相比,两者有什么相同点和区别呢?ArrayListLinkedList...
2019-10-29 16:41:13 1144
原创 Java常用类:ArrayList类详解
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)ArrayListArrayList其实就是维护了一个数组,使用扩容机制使其长度可变,可以把它想象成是一个数组的工具类,能够快速的改变数组的元素和长度。成员变量public class ArrayList<E> ext...
2019-10-29 11:59:46 626
原创 Java对象作为方法参数传递
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)前言上周在写一段代码的时候出现了一个让我汗颜的bug,给大家看下示例代码,原业务代码就不贴了,反正是一个意思。//eg1public class ArrayListDemo { public static void te...
2019-10-28 14:01:14 2391 2
原创 Java常用类:System
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)SystemSystem类是被final关键字修饰的类,不能被继承,构造方法是私有的,不能被实例化,这个类的方法更多是获取系统级别的信息,方法和成员变量都是static修饰。public final class System { ...
2019-10-10 15:08:21 264
原创 Java常用类:ClassLoader
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)ClassLoader1.ClassLoader的作用Class Loader是用来把.class字节码文件加载到jvm内存中的,也就是把.class文件加载为Class对象。2.ClassLoader的分类Java内置了三个重...
2019-10-10 11:22:12 237 1
原创 Java常用类:Class类
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)Class1.Class和.class文件Class是一个类,所有的Java类在项目启动后都会被jvm加载生成一个Class的实例对象,该对象保存在.class文件中,每个类只有一个Class对象,jvm通过该对象获取类的所有信息,...
2019-10-09 18:08:27 331
原创 Java常用类:ThreadLocal
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)ThreadLocalThreadLocal类主要是为了解决多线程并发,出现线程共用变量的问题。与synchronized等同步方法不同的是,synchronized是采取线程排队的方式,使得同一时间点只有一个线程访问非线程安全的变量...
2019-10-08 15:07:42 182
原创 Java常用类:异常看这篇就够了
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)Throwable,Exception,Error关系Java中的异常机制可以便于开发人员定位程序中的错误,那么如何优雅的抛出异常呢?首先要清楚Java中的异常类,以及它们之间的关系。异常主要分为两大类:Exception和Err...
2019-09-30 15:38:30 208
原创 Java常用类:Enum类
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)Enum类为什么要使用Enum呢?首先来看一段代码//判断用户的身份,根据不同的身份调用不同的方法public void judgeUserIdentity(int i){ switch (i){ ...
2019-09-29 17:55:12 138
原创 Java常用类:基本数据类型的包装类
作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)Java的基本数据类型有:byte,char,short,int,long,float,double,boolean。每一种类型都有一个包装类与之对应,将一些常用方法封装起来,便于基本数据类型之间的转换,对应关系为:基本类型...
2019-09-29 16:37:13 189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人