自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (2)
  • 收藏
  • 关注

原创 3分钟入门Java多线程

多线程下面通过一个取钱的案例给同学们演示一下。案例需求如下。

2024-04-27 21:17:06 297 1

原创 spring boot 将配置文件信息 赋值到类注解

何将application.properties中的值赋值给一个类注解

2024-04-25 20:01:56 306 2

原创 Spring之依赖注入源码解析

在XML中定义Bean时,即为手动注入,因为是程序员手动给某个属性指定了值。

2023-08-25 15:34:31 558

原创 Spring之Bean生命周期源码解析

实例化自动注入Aware对象初始化。

2023-04-26 19:06:48 687 1

原创 Spring之底层架构核心概念解析

BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。接着我们看一下BeanDefinition这个接口的源码@Bean这些,称为声明式定义Bean还可以通过BeanDefinition设置Bean的其他属性和申明式事务、编程式事务类似,通过,@Bean,@Component等申明式方式所定义的Bean,最终都会被Spring解析为对应的BeanDefinition对象,并放入Spring容器中。

2023-04-25 16:48:18 502

原创 Spring底层核心原理解析

Spring底层核心原理解析

2023-02-23 20:57:20 446

原创 一篇文章看懂 Java SPI 机制及原理

还不懂什么是Java SPI的可以进来看看

2022-09-20 20:13:18 318

原创 BeanFactory和ApplicationContext区别及详解

​ Spring 框架带有两个 IOC 容器—— BeanFactory和ApplicationContext。BeanFactory是 IOC 容器的最基本版本,ApplicationContext扩展了BeanFactory的特性。​ Spring容器最基本的接口就是BeanFactory。BeanFactory负责配置、创建、管理Bean,它有一个子接口ApplicationContext,也被称为Spring上下文,容器同时还管理着Bean和Bean之间的依赖关系。​ spring Ioc容器

2022-05-16 21:54:16 10414 2

原创 SpringMVC接收文件上传

使用SpringMVC接收文件上传

2022-05-06 08:05:14 2413

原创 忘记创建.gitignore文件怎么办

避免冲突先拉取最新代码,如果有冲突先解决冲突。在根目录中进行缓存清理,一定要在根目录下。再次到git根目录下,执行下面命令。创建.gitignore文件。

2021-08-31 22:04:19 419

原创 Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.

创建springboot 项目启动报错原因是application.java文件直接放在了java文件夹下面注意:SpringBootApplication启动类不能直接放在java文件夹下解决办法:创建子包然后放在子包下面

2021-01-07 14:35:48 338

原创 雪花算法 分布式系统生成id

分布式项目不能使用数据库本身的自增功能来产生主键值,原因是生产环境为分片部署的。而是使用snowflake (雪花)算法(twitter出品)生成唯一的主键值。41bit的时间戳可以支持该算法使用到2082年 10bit的工作机器id可以支持1024台机器 序列号支持1毫秒产生4096个自增序列id 整体上按照时间自增排序 整个分布式系统内不会产生ID碰撞 每秒能够产生26万ID左右代码如下/** * <p>名称:IdWorker.java</p> *

2020-12-03 21:40:15 423

原创 idea中lombok不生效(最全的解决办法)

可能有以下几点原因你的idea没有安装lombok插件,可能是你换了个电脑,然后没有安装lombok插件。看看是否成功导入lombok的jar包到如下位置,在剪头处打上勾

2020-11-15 14:38:46 5581 3

原创 dubbo启动报错 java.lang.NumberFormatException: For input string: “127.0.0.1:2181“

项目场景:今天学习dubbo启动项目时,报错:java.lang.NumberFormatException: For input string: "127.0.0.1:2181"原因分析:期初以为是zookeeper配置文件中的data路径有问题,后来仔细查看发现是自己服务注册中心address属性有问题少加了//错误属性:可以看到zookeeper后面少了两个//<dubbo:registry address="zookeeper:127.0.0.1:2181"></du

2020-11-07 16:08:13 1340

原创 快速理解迭代器模式

一、什么是迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部实现,这样既可以做到不暴露集合内部的结构,又可以让外部代码透明地访问集合内部数据。二、迭代器的模式结构抽象容器角色:负责提供具体迭代器角色的接口,一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等。具体容器角色:实现抽象容器的具体实现类,比如List接口的实现ArrayList等。抽象迭代器角色:负责定义访问和遍历元素的接口。具体迭代器角色

2020-11-04 08:51:29 211

原创 什么是SQL解析

这里给出使用的druid坐标 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency>注意:druid不同版本结果可能会有细微差异。

2020-10-31 14:45:24 3342

原创 Java8中findAny和findFirst的区别

Java8引入了许多新特性其中findAny和findFirst就是其中之一,那么有什么区别呢?Optional findFirst():返回列表中的第一个元素。Optional findAny() :可以看到findAny()操作,返回的元素是不确定的,对于同一个列表多次调用findAny()有可能会返回不同的 值。使用findAny()是为了更高效的性能。如果是数据较少,串行地情况下,一般会返回第一个结果,如果是并行 的情况,那就不能确保是第一个。比如下面的例子会随机地返回OptionalI.

2020-08-26 18:49:29 1741

原创 Java设计模式之策略模式

定义策略模式定义了一组算法,将它们逐个封装起来,并使它们可以相互替换。策略可以让算法独立于使用它们的客户而变化。往往官方给的定义就是很难理解,其实就是定义一个接口,分别让具有相同行为的类去实现它,成为一中策略,然后根据具体的行为去调用具体的策略。通过不同的方式(算法)达到相同的目的(功能)。说明举个例子吧,我们在购物时,普通用户打9折,会员打8折,超级会员打6折。此时我们就可以定义一个花费的接口 double cost(Double oldCost);作用就是计算出打折后应付的钱数。然后我们设计

2020-08-20 20:11:22 213

原创 如何优雅的初初始化Map

Map的初始化第一种:public void mapInit{ Map<String, String> myMap = new HashMap<String, String>(); myMap.put("a", "b"); }第二种,匿名内部类初始化HashMap<String, String > h = new HashMap<String, String>(){{ put("a","b"); }};第三种

2020-08-19 16:25:54 1685 1

原创 swagger常用注解详解

swagger常用注解详解注解使用位置作用类型@Api类对类的说明常用参数@ApiOperation方法说明方法的用途、作用@ApiImplicitParams方法表示一组参数说明@ApiImplicitParam@ApiImplicitParams中表示单独的请求参数@ApiModel响应类表示一个返回响应数据的信息@ApiModelProperty属性描述响应类的属性@ApiResponses方法表示一

2020-08-19 16:23:19 1031

原创 去掉字符串最后的点

例如去掉下面字符串最后的点 "."String key = "tableName.columnName."1. 方法一key = key.Substring(0,key.Length - 1)2. 方法二s = s.ToString().RTrim(',')str.replaceAll("[.]$","");https://www.cnblogs.com/Nightsky-Dec/p/6364898.html...

2020-08-19 15:10:42 439

原创 清空StringBuilder和StringBuffer方法及效率比较

清空的方法// 方法一sb.delete(0,sb.length());// 方法二 效率最高sb.setLength(0);// 方法三 sb = new StringBuffer();方法介绍完,接下来让我们来测测他们谁的效率最高吧测试代码如下 @Test public void test() { StringBuilder sb = new StringBuilder("efficiency"); // delete方法

2020-08-19 15:02:01 424

原创 fastjson如何避免$ref引用

实体转化为json字符串后出现了$ref字样的东西,这是因为在传输的数据中出现相同的对象时,fastjson默认开启引用检测将相同的对象写成引用的形式引用是通过"$ref"来表示的引用 描述 "$ref":".." 上一级 "$ref":"@" 当前对象,也就是自引用 "$ref":"$" 根对象 "$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0) 解决办法// 单个关闭 J

2020-08-18 20:23:05 1439 6

原创 Spring Boot集成MyBatis Plus在控制台打印sql语句

只需在yml文件中添加以下信息即可。mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl如果你是properties文件logging.level.com.demo.system.mapper=debug

2020-08-17 20:45:01 1440 2

原创 当同时在多个表中插入数据时,实现一个出错全部回滚

一、springboot如果你使用的是springboot那很简单,只需在方法的头部添加@Transactional(rollbackFor = Exception.class)即可例如 在我的Service@serviceclass UserServiceImpl{ @Transactional(rollbackFor = Exception.class) public boolean addUser(){ service.insertOne()

2020-08-17 20:32:14 5144

原创 阿里为什么规定在更新或者删除表之前要进行select操作

阿里的SQL规范中有一条数据订正时,删除和修改记录时,要先 select,避免出现误删除,确认无误才能执 行更新语句。这个主要目的是:防止在更新是出现没有加where条件就直接提交的情况发生。当时的阿里巴巴数据库可以直接用bash进行后台的增删操作,各种监管和操作日志机制都不是很完善。新入职的程序员在使用存储过程进行update极度重要的表的时候,没有加where条件就直接潇洒了敲了一下回车键。还好当时他没有跑路,而是用颤抖的手给DBA打了电话,还好oracle在没有保存前回滚是有效果的,没有造成太

2020-07-27 17:04:12 1318 3

转载 MyBatis中ResultMap的使用

resultMap 元素是 MyBatis 中最重要最强大的元素。它就是让你远离 90%的需要从结果 集中取出数据的 JDBC 代码的那个东西, 而且在一些情形下允许你做一些 JDBC 不支持的事 情。 事实上, 编写相似于对复杂语句联合映射这些等同的代码, 也许可以跨过上千行的代码。 ResultMap 的设计就是简单语句不需要明确的结果映射,而很多复杂语句确实需要描述它们 的关系。你已经看到简单映射语句的示例了,但没有明确的 resultMap。比如:   1 2 3

2020-07-27 16:52:57 1081

原创 junit 单元测试 规范

一、测试准则必须遵守AIR原则A(自动化):单元测试应该是全自动执行的,并且非交互。单元测试中不准使用System.out来进行人工验证,必须使用assert来验证。I (独立性):单元测试用例之间决不能互相调用,也不能依赖执行的先后次序。**反例:**method2需要依赖method1的执行,将执行结果作为method2的输入。R(可重复):单元测试是可以重复执行的,不能受到外界环境的影响。保证测试粒度足够小,有助于精确定位问题。单测粒度至多是类级别,一般是方法级别。核心业

2020-07-25 16:08:51 2444

原创 @RequestBody,及spring常用注解的用法

问题前端传来json数据我用实体类接收时,必须要加@RequestBody才能注入进入。由于我之前学习时也用实体接收参数,并且没有加@RequestBody却能注入成功,于是我就产生了疑惑,决定对这个@RequestBody进行研究研究。百度搜索中。。。。终于明白,原来我之前一直用的是表单提交,所以他能注入进去。这里感谢这篇文章 @RequestBody的使用结论如...

2020-04-09 14:31:44 333

原创 postgresql报错ERROR: operator does not exist: numeric = character varyin

今天在操作pg库做更新操作的时候报错operator does not exist: numeric = character varyin原因:数据类型不对,pg库变量类型为numeric,我的用的是String解决:我是将变量类型改为Long解决了...

2020-04-02 15:08:40 4202

原创 时间格式转字符串出错(You might need to add explicit type casts)

java时间格式转换成hh:mm:ss出错报错信息:You might need to add explicit type casts原因是我把格式输入错了 正确的应该是 yyyy-MM-dd HH:mm:ss一定需要注意大小写...

2020-04-02 15:02:39 6865

原创 mysql和pg使用正则表达式的区别

pg中使用正则表达式:~ 使用正则,~* 且不区分大小写,!~不使用正则 select * from user where email ~ '^[A-H]' --匹配email地址以A-H开头的记录 mysql中使用正则:regexp 使用正则;not regexp 不使用正则select * from user where email REGEXP '^[A-H]...

2020-04-02 14:56:38 502

原创 java判断一个字符串是否为数字型

给出一种最简单的正则匹配 public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); }当然这并不是最完美的,...

2020-04-02 14:49:39 353

原创 Spring中实现多数据源事务管理

转载至:https://www.cnblogs.com/shuaiandjun/p/8667815.html

2019-12-20 14:43:59 277

原创 jdk1.8 新特性之 forEach 循环遍历

JDK1.8之后引入了Lambda表达式,让集合的遍历变得简单,代码也更简洁了。1.遍历List List<Integer> numbers = Arrays.asList(6, 2, 2, 3, 7, 3, 5, 6); // 方式一 numbers.forEach(System.out::print); ...

2019-12-07 14:01:00 652

原创 SQL Update能否同时更新多张表

今天想写一个Postgresql的sql语句,需求大概只这样:表A和表B需要同时更新,共用一个更新条件,然后我不想分别写两条update分别更新A和B。查询了大概两个小时之后,才明白insert/update/delete都仅能影响单表。在这记录下避免下次采坑...

2019-12-06 14:19:44 10027

原创 Java正则表达式常用表达式

下面内容只记录了本人学习时常用的一些表达式。/** * 正则表达式案例 * . 匹配一个字符 * ^ 定义以什么开始 * \d 匹配一个或者多个数字 * \. 匹配.(可以匹配到5 1.5 2.21) * * 零次或者多次匹配前面的字符串或者子表达式。例如,zo* 匹配"z"和"zoo“还有”zooo“都是可以的...

2019-11-25 16:33:31 139

原创 redis中的incr和incrBy的区别

最主要的就是incr有默认的增长值 1incrby 必须指定一个增长值,不然会报错

2019-10-29 10:21:09 4904 2

原创 Linux下安装redis

1.去redis官网下载安装包redis中文官网[图片]在这里插入图片描述2.下载好之后我们cd /opt 进入Linux的opt下面

2019-10-26 20:33:36 113

原创 Java中的this和super

this指向当前类的一个指针1.普通的直接引用就相当于调用自身2.当形参名和成员名相同是,用this来区分3.引用构造参数this(参数):调用当前类的其他构造函数this.方法名:调用当前类的其他方法Super指向最近父类对象的一个指针super.方法名:调用父类的方法。。。。。。注意:这里的方法必须是被重写的方法super.变量名:调用父类的属性值...

2019-09-29 15:30:34 272

SharedPreferences

在做项目到的时候,我通常会自己写一些Utils方法,现在向大家分享一下,同时也是在这里记录整理一下,以后会不定期更新的 大家有什么好的,自己写的或者学习到的Utils方法,可以发给我,一起整理,一起学习

2018-08-08

java编写的计算器

一个图形界面(GUI)的计算器应用程序,可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零,sin,cos,平方,开平方功能

2018-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除