- 博客(18)
- 收藏
- 关注
原创 自定义xxx-spring-boot-starter
概要1. 了解spring-boot-starter的核心注解2.以mybatis-plus-boot-starter为例理解自定义starter2.1 创建配置类2.2 创建imports文件2.3 创建starter3. 手写一个自定义starter3.1 创建autoconfigure自动配置包3.2 创建starter包3.3 使用starter了解了前面springboot读取文件的过程,再来自定义starter就简单了。
2024-08-21 11:52:19
808
原创 IOC容器初始化流程
了解过spring的都知道,spring是通过一个IOC容器管理应用中的bean对象的。本文讨论springboot应用在初始化IOC容器时的主要操作都有哪些。中提到refreshContext(context)实际会调用到AbstractApplicationContext的refres()方法。准备beanFactory,为其设置一些属性,如类加载器等。标记状态,校验必填属性,重置监听器状态等。提供先进的推理,复杂的指令,更多的创造力。为刷新上下文做一些准备工作,修改上下文的。
2024-08-06 16:19:20
818
原创 Collection集合之HashMap源码学习记录(JDK8)
AbstractMap提供了Map接口的基本实现,最大限度的减少了实现Map接口所需的工作量。要实现一个不可修改的Map时,仅需继承AbstractMap并实现抽象方法entrySet().对于不可修改的Map该方法返回的Set应该不支持add/remove方法,set的迭代器也不应该支持remove方法。实现可修改的Map时,需要实现entrySet()方法的同时,实现put(key,val)方法,缺少实现时调用put方法将抛出UnsupportedOperationException异常。
2024-05-07 13:29:29
860
原创 Collection集合之ArrayList源码学习记录
ArrayList实现了RandomAccess接口,此接口为标记接口,表明实现此接口的List实现类具有随机访问特性。一些适用于随机访问列表的的算法应用与顺序访问列表时,可能会有不同的表现。如果一个算法在应用到随机访问列表的性能高于顺序访问列表时,建议检查此接口,并对算法做出相应调整以满足性能需求。通常,如果循环A比循环B快的时候,就需要实现RandomAccess接口。
2024-04-30 17:01:43
734
1
原创 JAVA中的Exception及Error
另外,当指定的路径名存在,但是由于某种原因无法访问时也会抛出此异常,例如当尝试以写的方式打开一个只读文件的时候。方法不需要在其throws子句中声明在方法执行过程中可能抛出但未捕获的Error的任何子类,因为这些错误是不应该发生的异常情况。可以通过JVM启动参数。3).ClassLoader类的loadClass方法的方式以类的String名称载入类,但无法找到对应名称的类的定义时抛出。拟机或类加载器实例尝试载入类的定义(作为正常方法调用的一部分或使用new创建对象的一部分),但却找不到其定义时抛出。
2024-04-29 17:20:55
346
3
原创 关于乐观锁
乐观锁:对于获取资源总是持乐观态度,认为操作资源时其他人不会同时操作该资源。在此思想中资源总是可达的,因此不会对资源加锁,只在更新数据时检查数据是否冲突。乐观态度下,可能存在多个线程同时操作同一资源的情况,因而需要一些其他方法来保证数据一致性。悲观锁:对于获取资源总是持悲观态度,认为操作资源时总是存在冲突的可能。在此思想中资源总是存在冲突,需要加锁保证数据操作,在操作完成后释放锁。
2024-04-23 10:56:53
858
1
原创 设计模式学习笔记(一)
我们举个手机厂的例子:用户需要手机产品时,直接提供手机产品名称给工厂,由手机工厂完成根据提供的信息决定提供哪个具体产品,即使用哪个具体产品的实现对产品进行实例化。@Overridedefault:HuaWei手机工厂根据传入的产品类型名确定具体生产Mate60、Mate60Pro还是Mate60RS。从上面的新建对象方式变成下面的方式工厂模式下,当新产品发布时,用户不需要新增getNewPhone方法,而是由工厂方法对产品扩展进行适配。
2024-04-22 17:02:29
674
原创 Spring整合Mybatis框架配置文件移植
Spring整合Mybatis首先要将原有的mybatis配置移植到spring的配置文件中。1.数据源的移植:<!-- 配置jdbc相关配置文件路径 --><context:property-placeholder location="classpath:jdbc.properties"/><!-- 配置数据源 --><bean id=...
2020-04-18 15:28:14
288
原创 java8新特性之Stream中的各方法使用场景实例
Stream类中的方法如下:filter()方法/** * Returns a stream consisting of the elements of this stream that match * the given predicate. * * This is an intermediate operation. * * @param predicate a pred...
2020-04-14 16:43:56
1393
原创 24点的一种暴力实现
计算24点是一种扑克牌益智游戏,随机抽出4张扑克牌,通过加(+),减(-),乘(*), 除(/)四种运算法则计算得到整数24,本问题中,扑克牌通过如下字符或者字符串表示: A 2 3 4 5 6 7 8 9 10 J Q K程序要求实现:输入4张牌,判断能否通过四则运算得到24点。在网上没找到什么好的算法,最后选择了暴力遍历,思路如下:字母到数字的转换比较简单,这...
2020-04-04 03:04:56
455
1
原创 SQL的四种隔离级别
SQL中的四种隔离级别读未提交(Read uncommitted)The isolation level that provides the least amount of protection between transactions. Queries employ a locking strategy that allows them to proceed in situations...
2020-03-20 12:20:18
1091
1
原创 IDEA报错:禁止使用构造方法BigDecimal(double)的方式把double值转化为BigDecimal对象
禁止使用构造方法BigDecimal(double)的方式把double值转化为BigDecimal对象在做双精度浮点数运算时,出现了精度错误,导致出现结果为12.000…01的结果,网上找了下解决办法,使用BigDecimal可以解决浮点数运算精度出错的问题,在编码时idea提示禁止使用构造方法BigDecimal(double),报错代码如下:ALT+ENTER选择Edit inspec...
2020-03-10 23:11:35
2088
原创 java.sql.SQLException: Access denied for user 'Jeb'@'localhost' ------SpringCloud学习笔记(三)
10-Mar-2020 18:13:25.205 信息 [http-nio-8081-exec-5] com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource. Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 5,...
2020-03-10 19:13:22
845
原创 关于Java Bean
关于Java Bean在说明Java Bean之前,首先要说明一下两个概念:java反射机制和控制反转(IoC)。java反射机制: 反射这一概念最早由Smith在1982年提出,主要指应用程序访问、检测、修改自身状态与行为的能力。java中存在一个特殊的类,Class类,它的对象用于描述java运行时的类或接口。当一个类被加载到JVM时,便自动生成一个Class类对象。...
2020-01-30 22:15:57
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人