- 博客(80)
- 收藏
- 关注
原创 每天一点点,Spring执行创建bean(AbstractAutowireCapableBeanFactory#doCreateBean)
Spring 创建bean流程 AbstractAutowireCapableBeanFactory#doCreateBean1、 判断当前bean是不是单例的,如果是单例的,先从缓存中取,如果存在直接返回(在创建之前已经由依赖注入已生成),如果不存在执行创建if (mbd.isSingleton()) { instanceWrapper = this.factoryBeanInstanceCache.remove(beanName);}if (instanceWrapper == null)
2022-02-28 17:15:38
427
原创 每天一点点,Spring创建bean实例 AbstractAutowireCapableBeanFactory#createBeanInstance
Spring 执行创建bean实例逻辑AbstractAutowireCapableBeanFactory#createBeanInstance1、确保当前类已加载Class<?> beanClass = resolveBeanClass(mbd, beanName);2、如果当前BeanDefinition设置的有Supplier方法,直接调用此方法生成bean对象Supplier<?> instanceSupplier = mbd.getInstanceSupplie
2022-02-27 21:30:47
285
原创 每天一点点,Spring根据找到的构造方法创建bean
Spring得到构造函数之后执行实例化1、如果是默认空参构造1.1、当所有的候选构造函数都为null的时候,会使用空参构造// 如果此处得到的候选构造函数为nullConstructor<?>[] ctors = determineConstructorsFromBeanPostProcessors(beanClass, beanName);//if null == ctors 会执行 AbstractAutowireCapableBeanFactory#instantiateBean
2022-02-26 22:41:56
322
原创 每天一点点,Spring选择合适的构造方法执行创建
Spring 得到候选构造方法之后,如何选择使用哪个构造方法?ConstructorResolver#autowireConstructor1、定义三个变量// 最后决定使用的构造方法Constructor<?> constructorToUse = null;// 构造函数需要使用的参数持有器ArgumentsHolder argsHolderToUse = null;// 最后需要使用的构造方法的参数Object[] argsToUse = null;2、explicit
2022-02-25 15:50:27
632
原创 每天一点点,Spring得到当前类的候选构造方法
当Spring中 有多个构造函数的时候,是如何得到候选的构造方法AbstractAutowireCapableBeanFactory#determineConstructorsFromBeanPostProcessors其中主要的是 AutowiredAnnotationBeanPostProcessor 这个类AutowiredAnnotationBeanPostProcessor#determineCandidateConstructors 得到候选的构造方法1、找存在@Lookup注解的方法
2022-02-24 11:54:54
404
原创 rabbitmq 配置 SimpleRabbitListenerContainerFactory 如何 新增消费者
rabbitmq 配置 containerFactory 属性@RabbitListener(queues = "activity_queue" ,containerFactory = "simpleRabbitListenerContainerFactory")rabbitmq 执行流程RabbitListenerEndpointRegistrar 实现 InitializingBean 接口,启动会自动被调用org.springframework.beans.factory.Initia
2021-11-05 12:15:12
9155
原创 rabbitmq 简单操作记录
rabbitmq 操作记录当前只有默认的5个消费者测试 消费端方法进入直接 手动ACK 之后,然后休眠等待10min查看队列数据信息消费端代码如下,当修改端启动之后,package com.example.customer;import com.rabbitmq.client.Channel;import org.springframework.amqp.core.AcknowledgeMode;import org.springframework.amqp.core.Message;i
2021-11-05 10:29:24
286
原创 tk.mybatis 根据主键id执行update操作时,组装的sql语句包含了非id列
tk.mybatis使用updateByPrimaryKeySelective 的where条件多了非id字段错误代码错误完整Java执行代码问题分析问题原因解决方案错误代码错误完整Java执行代码实体类@Table(name = "test")public class Test { @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; /** * 状态 0
2021-10-20 10:48:47
1037
原创 idea 常用插件记录整理
idea自用常用插件记录代码检查插件代码热部署mavenmybatis插件控制台打印GIT 提交模板代码智能提示右侧导航栏一键调用一个对象的所有的set方法代码检查插件Alibaba Java Coding GuidelinesSonarLint代码热部署JRebel and XRebel for IntelliJmavenMaven Helpermybatis插件MybatisX控制台打印Grep ConsoleGIT 提交模板Git Commit Temp
2021-08-02 14:31:08
236
原创 PageHelper 记录
自动添加order by 问题项目中引入 了PageHelper 组件, 然后 查询的时候,明明没有指定 PageHelper.orderBy();但是在执行sql的时候,sql的结尾却莫名其妙多了 order by id例子// mapper Integer searchCount(QueryBean querybean);<select id = "searchCount"> select * from s left join b on b.id = s.p_id w
2021-06-23 16:53:10
566
原创 java设计模式
Head First设计模式设计原则1. 找出应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码写在一起2.针对接口编程,而不是针对实现编程3. 多使用组合,少使用继承4.为了交互对象之间的松耦合设计而努力策略模式定义观察者模式定义设计原则1. 找出应用中可能变化之处,把它们独立出来,不要和那些不需要变化的代码写在一起2.针对接口编程,而不是针对实现编程3. 多使用组合,少使用继承4.为了交互对象之间的松耦合设计而努力策略模式定义** 策略模式** 定义了 算法族,分别封装起来,
2021-05-07 21:39:05
138
原创 Poi 通过SXSSFWorkbook获取 制定行的时候报错 空指针
//指定可访问大小为2方便说明问题; 如果不传默认 100 SXSSFWorkbook wb = new SXSSFWorkbook(2); SXSSFSheet sheet = wb.createSheet("sheet"); //在当前sheet添加2行数据信息 sheet.createRow(0); sheet.createRow(1); //获取 第一行数据 SX...
2021-04-23 11:39:21
2006
原创 Spring @Retryable 和 @Recover
@Retryable 和 @Recover 使用的时候 注意事项@Recover的注解的方法第一个参数需要是 @Retryable 所捕获的重试异常类型;必须是第一个参数@Recover注解的方法的 返回值必须 和 @Retryable注解的方法返回值一致上面两条的原因见文章末尾最近在使用@Retryable 注解时出现的问题 是 使用了 @Retryable 注解之后;指定了特定的异常进行异常重试机制;设置最大重试次数,当时只设置了@Retryable 注解;但是并没有配合使用 @R
2021-01-08 09:44:01
1412
原创 Amazon advertising Api for Java
店铺授权创建广告活动/广告组等创建广告和获取广告相关内容需要首先通过 Profiles 接口获取每个店铺的Amazon-Advertising-API-Scope ;当前这个值是通过 Profiles接口获取的Profiles : 获取当前店铺站点的账号配置信息;获取的结果 里面的profileId 字段对应的值就是需要在 Amazon-Advertising-API-Scope 传入的值...
2020-12-15 11:40:45
2227
15
原创 AndroidStudio 执行模拟器报错 Emulator: Process finished with exit code -1073741819 (0xC0000005)
在运行安卓项目的时候;不知道什么原因报错如下图:Emulator: Process finished with exit code -1073741819 (0xC0000005)百度了很久才找到了解决方案,再此记录一下;清除修改配置文件然后重新启动即可;文章解决方案为转载;原文地址https://blog.youkuaiyun.com/qq_36771588/article/details/103372112...
2020-10-21 15:15:11
3302
4
翻译 使用FastJson打印对象json出现$ref问题
json文件{ "sites": { "site": [ { "id": "1", "name": "测试1", "url": { "url": "www.runoob.com" } }, { "id": "2", "name": "测试2", "url": { "$ref": "$.mPItem[0].mP
2020-10-19 09:23:48
815
原创 Android 编写踩坑自记录
RecyclerView 使用自定义的RecyclerView.Adapter之后无法显示androidx.recyclerview.widget.RecyclerView代码; 代码都是复制别人的;别人的就能跑为什么自己的就是没有办法执行呢?是不是很纳闷;…下面代码是复制的代码;别人就能跑;我的就不能… private RecyclerView recycleView; private RecyclerViewAdapter recyclerViewAdapter; private L
2020-07-21 21:04:26
249
原创 Ireport异常 java.lang.IllegalArgumentException: Null range specified
使用Ireport 打印的时候一直报错; 异常错误日志 ;截取了部分java.lang.IllegalArgumentException: Null range specified at javax.print.attribute.standard.PageRanges.<init>(PageRanges.java:193) at net.sf.jasperreports.engine.export.JRPrintServiceExporter.exportR
2020-06-03 11:33:07
1151
原创 git 基础命令自整理 包含参考多处文章信息
**HEAD 指向当前所在的分支git log --online --decorate#显示提交历史、各个分支的指向以及项目的分支分叉git log --oneline --decorate --graph --all#创建分支 —> 创建新分支;但是不会直接切换到该分支git branch branch1#切换到branch1分支命令git checkout branch1#创建分支并切换到该分支下面git checkout -b branch1#合并分支 -->
2020-05-27 09:52:10
311
原创 Android Studio出错异常汇总
初次使用Android Studio 异常汇总以及解决方案本人非专业Android开发;下面的内容只是我遇到然后解决的方案。error while loading state for instance 0x0 of device 'goldfish_pipe'resizing partition e2fsck failed with exit code 8Emulator: ERROR: resizing partition e2fsck failed with exit code 8本人非专业Andro
2020-05-23 12:45:50
1335
1
原创 java POI导出excel,导出的excel,打开文件提示文件格式或扩展名无效
导出excel的时候,导出正常,excel打开去提示打开文件提示文件格式或扩展名无效的错误;如下图所示当创建ECXEL的时候,使用的对象是HSSFWorkbook wb = new HSSFWorkbook()生成后缀为 .xlsx 时候会出现上面的问题把后缀改为 xls问题解决;不过上面的 .xlsx格式的文件;使用office会报这种问题;但是用wps可以正常打开 = =...
2020-02-19 21:34:54
9613
4
原创 Mysql根据某一字段值按照某一特定符转化为列数据
当前业务需求:根据某一个字段的字符串通过指定的分隔符,将原始的一行数据分隔为多行数据原数据:需要的结果数据格式实现sql:select acct.id, substring_index(substring_index(many, ',', h.id), ',', -1) as onefrom sys acct cross join help_select_id ...
2020-02-18 19:36:59
1687
原创 Graphics2D绘制文字水印,本地字体样式正常,服务器样式无法显示
如图;需要添加的文字水印样式如下在本地测试的时候;添加文字后的水印图;字体水印样式正常;上了服务器就不行,如下图,没有应用上实际需要的样式原因:我查了一些资料说是因为 服务器上没有对应的字体样式;给的解决方案是通过网上下载或者其他系统拷贝(例如 宋体字体文件simsun.ttcsimsun.ttf)将其通过ftp上传到服务器并拷贝到/usr/local/jdk/jre/lib/fon...
2020-02-13 20:46:00
1513
原创 有关Amazon站内信邮件类别处理
在做amazon站内信的时候;需要对邮件进行分类; 如: 亚马逊买家邮件 ; 亚马逊系统邮件 ; 亚马逊Q&A问答 等分类;记录一下amazon的邮箱类别;/** * 处理邮件类型 * * @param fromEmail 发件人邮箱 * @param email 保存的邮件对象 */ private v...
2019-12-19 16:20:48
3253
原创 关于mybatis返回值为List集合的时候;返回size是1但是获取该对象时为null的问题
问题描述在项目中使用mybatis映射的时候; 返回的结果集是List ;查询的结果集List的size是1 ; 然而在调用 list.get(0)的时候; 返回值为 null;解决方案:检查sql里面的查询字段; 是否至少有一个字段一定有值; 保证select 后面查询的某一个字段一定有值;不能select 后面的字段全为 null;问题原因分析:由于 select 的字段值...
2019-12-17 16:27:55
4668
4
原创 2019版idea导入maven项目;无法直接引入pom文件;没有maven导航
最近更新了最新版本的idea;然后导入git下载的项目; 右侧没有maven导航;结局方案:找到这个搜索符号(在项目最右侧)或者按快捷键 CTRL+ shift + N弹出下面的小弹框;选择Actions;搜索maven ;选择 +Add Maven Projects然后弹出弹框 ;选择你的 pom.xml文件然后项目右侧就会出现maven 管理;并导入maven依赖...
2019-12-06 22:13:44
4386
3
原创 Graphics2D:JAVA绘制水印图;包括水印的等比裁剪,缩放,旋转等功能
根据最近项目的需求,稍微整理了一下代码;可基本满足图片添加文字水印,图片水印;图片水印等比例缩放,按照指定尺寸裁剪水印图片,水印的旋转。下面放一张多水印处理效果图:项目地址:https://github.com/blanksheetpaper/watermark.git希望大家多多指正...
2019-09-07 11:30:13
1170
原创 Graphics2D绘制多图片水印方法
/** * @param srcPath 需要添加水印的完整地址 * @param ids 需要添加的水印的id集合 ,结果以 ","分隔 * @return 返回包含水印图片的输入流 * @throws Exception */ public InputStream addWatermark(String srcPath, Str...
2019-07-29 17:01:14
1397
原创 Graphics2D绘制水印图;包含在原文件上添加文字水印(文字带背景颜色)和图片水印
package com.epean.trade.lms.util;import com.alibaba.fastjson.JSONObject;import com.epean.trade.component.entity.watermark.SysWatermark;import com.epean.trade.component.enums.WatermarkCodeEnum;imp...
2019-07-29 16:56:24
2947
原创 mybatis的insert之后实体类获取主键值位null
在使用myabatis的时候,希望通过添加之后返回的主键到实体类里面,但是一直获取的结果是 null;未修改之前:mapper语句xml文件实体类(get和set方法都有,没截图)运行结果:但是一直在获取的时候,实体类的返回值一直是null;百度了一下,没有发现原因;后来自己尝试修改,最后ok了;解决方案修改之后的xml文件运行结果注意两个xml的区别;一个是直接写...
2019-07-28 15:47:22
1440
原创 net.sf.jsqlparser.parser.ParseException
使用mybatis Page Helper时报错Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "INDEX" "INDEX "" at line 71, column 42.Was expecting one of: <EOF> "JOIN" ... "LEFT" ......
2019-07-22 11:04:37
2910
原创 mysql强制指定索引和禁止索引
在最近查询的时候,由于数据量比较大,导致查询速度超级慢;180秒;连接了3个表;第一个表数据 50多万 ;第二个表数据379万第三章表数据 1728三个表在连接时候查数据特别慢;然后分析了一下第二个索引是表二B的索引,在执行的时候。走了另外一个索引;导致效率低下,于是,强制修改还走 index_item_id索引;效率就提高了很多特此记录一下;强制索引的使用方式请参考...
2019-07-12 15:32:19
4778
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人