- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 java synchronized浅析
1.互斥同步,多个线程访问共享数据时,在同一时刻只能有一个线程访问,保证数据正确性。2.synchronized作用对象是非静态的,获得锁是对象锁,如果是静态的,获得锁则是类锁。3.synchronized锁是可重入的,同一个线程在外部获取锁以后,在内部也能自动获取锁(前提是同一个对象)。4.在Java早期版本中,synchronized属于重量级锁,效率低下,Java 6之后为了减少获得锁和释放锁所带来的性能消耗,引入了轻量级锁和偏向锁。5.JDK15后默认禁用偏向锁定。
2024-02-05 17:10:59
1055
原创 浅析Java中volatile关键字
volatile是一种轻量级锁的实现,它针对的仅仅是共享变量,不会对线程加锁,更不会造成线程的阻塞。volatile保证内存可见性,当变量值更新时,其他共享该变量的线程从主内存获取最新的值。volatile通过内存屏障禁止指令重排序。volatile对于复合赋值操作不保证原子性,如果需要保证原子性,还是需要使用synchronized、java.util.concurrent中的锁或原子类。
2024-01-20 20:50:33
1090
1
原创 阿里奇门对接-自定义接口(服务端)
其他系统需要通过阿里奇门调用公司自研erp系统的接口进行数据的同步,此时erp系统作为服务端需要在阿里奇门平台上配置对应的api信息。erp接口中除了实现自己的逻辑外还需完成验签逻辑,否则发布时会提示失败简单的图示如下。
2022-11-16 16:51:37
4575
原创 mybatis generator自定义sql以及方法生成(三)
前言在mybatis generator自定义sql基本和自定义命名风格的流程一样,当然也需要我们去写代码,完成整个扩展扩展方法与sql先修改org.mybatis.generator.api.IntrospectedTable.java类,在InternalAttribute增加自己需扩展的自定义方法枚举值,如想新增一个 selectList方法,定义一个ATTR_SELECT_LIST枚举值protected enum InternalAttribute {
2022-03-12 09:00:00
1934
原创 mybatis generator自定义sql以及方法生成(二)
前言接着上篇文章,一步步自定义需要生成的自定义方法以及在mapper.xml中生成自己想要的sql文件,有些代码都标注了自己在改造过程中的理解到的意思开始改造更改mapper方法命名风格mybatis-generator生成的默认方法不是我想要的,我想要的风格如下:selectByPrimaryKey --> selectOneupdateByPrimaryKeySelective --> updatedeleteByPrimaryKey -->delete.
2022-03-11 10:30:17
2167
原创 mybatis generator自定义sql以及方法生成(一)
前言使用现成的轮子能提高工作效率,但同时里面也多多少少有些问题,比如样式、内容等等与自己需要的有些差别,最近在使用mybatis generator 生成相关内容时,里面的方法名和一些sql有点不符合自己的心意,于是开始了改造之旅。在网上查找了相关资料后,终于生成了自己想要的东西,感谢大佬们的分享,同时我也将这个过程记录下来并分享给大家。生命不息,代码不止。内容参考:mybatis-generator扩展教程系列 -- 搭建MBG源码项目(入门铺垫篇)_shadowsick的专栏-优快云博
2022-03-10 17:08:38
2167
原创 sftp免密登录(生成公钥)
准备两台服务器:192.168.189.111(服务器用户名:admin)192.168.189.112(服务器用户名:admin)描述:在192.168.189.111服务器上使用sftp命令免密连接到192.168.189.112上实际操作步骤:1.在192.168.189.111上执行以下命令,这里使用的是RAS算法> ssh-keygen -t rsa这里回车键按两次,第一次是确认密钥的生成路径和文件名,第二次是设置私钥密码(默认即可)2.(192.16
2020-11-29 20:10:44
11469
4
原创 java8-Stream 流 常用API使用
类准备:List<Dish> menu = Arrays.asList( new Dish("pork", false, 800, Type.MEAT), new Dish("beef", false, 700, Type.MEAT), new Dish("chicken", false, 400, Type.MEAT), ...
2020-05-03 15:23:19
451
原创 java8 - Lambda表达式
Lambda表达式一种简洁地表示可传递的匿名函数的方式;它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。比如,你现在可以写(int x) -> x + 1,表示“调用时给定参数x,就返回x + 1值的函数”。lambda组成部分:lambda参数、->、lambda主体特点:Lambda没有return语句,return语句是隐藏的Lamb...
2020-04-12 17:45:23
290
原创 数据库数据分片(分库分表)
什么是数据分片?简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据切分有两种类型:垂直拆分与水平拆分。垂直拆分:1.表的垂直拆分:将一个表中的字段拆分到多个表中拆分原则:把不常用的字段单独放在一张表;把text,blob等大字段拆分出来放在附表中;经常组合查询的列放在一张表中;缺点:1...
2020-04-10 21:39:58
1205
原创 RabbitMQ安装与简单使用(centOS 7)
RabbitMQ是采用了Erlang语言实现AMQP(高级消息队列协议)的消息中间件,在安装MQ之前需要先安装ErlangErlang官网下载地址:https://www.erlang.org/downloadsRabbitMQ官网下载地址:https://www.rabbitmq.com/releases/rabbitmq-server/安装Erlang第一步,解压安装包,并配置安装目录...
2019-12-16 20:16:46
452
原创 CentOS 7 安装GitLab
CentOS 7 安装GitLab需要命令行:--第一部分:安装gitlab,ssh,防火墙,postfix(用于邮件通知)sudo rpm -ivh gitlab-ce-12.0.8-ce.0.el7.x86_64.rpmsudo yum install -y curl policycoreutils-python openssh-server croniesudo systemctl ...
2019-09-01 22:43:23
139
原创 git提交忽略eclipse中的文件
在eclipse中使用git提交代码时,有些eclipse自带的文件以及xxx文件是不需要提交的,那么在提交时就应该忽略掉这些文件。1.首先从https://github.com/github/gitignore下载Java.gitignore样例文件文件内容如下:# Compiled class file*.class# Log file*.log# BlueJ files*...
2019-08-25 20:22:27
471
原创 eclipse中使用git克隆项目
在eclipse中使用git克隆项目到本地1.右键 --> import–>进入Git目录,选择Projects from Git,next2.选择clone URI,next3.输入远程库地址、登录名、密码,进入下一步4.此处选择需要克隆的分支5.选择将远程项目克隆到本地目录,一般选择eclipse本地工作区注意事项:如果是版本较低的eclipse,在这一步骤不能...
2019-08-24 20:46:57
5166
2
原创 spring boot集成redis
一个程序员,只有不断的学习进取才能始终的保持着竞争力。接下来,给大家说说spring boot如何集成redis。首先我们认识一下redis:redis 是一个高性能的key-value数据库,它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyper...
2019-04-07 00:08:38
256
原创 在IDEA上快速搭建Spring Boot项目
前言:由于微服务框架Spring Cloud的盛行且Spring Cloud框架中的组件运行基于Spring Boot,所以分享下在IntelliJ IDEA中快速搭建Spring Boot项目。开发工具:IntelliJ IDEA 2018.1.6 x64环境:jdk1.8、maven3.5附工具下载地址以及破解方法:介绍两种搭建方式:一种是建立maven项目创建,另外一种使用Sprin...
2019-04-05 12:03:43
204
原创 idea2018快捷键设置成eclipse以及不生效问题解决
快捷键设置成eclispe步骤: 第一步:打开file-》setting第二步:找到keymap-》editor actions-》选中eclipse第三步:点击apply注意:如果修改完成后,快捷键还是没有生效那么参考接下的这一步骤;第一步:点击工具栏上-》tools第二步:把vim emulator上的勾去掉,成功解决问题...
2019-03-18 20:03:51
3731
6
原创 java时间(Date)类型转换
1.获取当前 年-月-日 /** * 获取年:月:日 * @return */ public String getDate() { Date date=new Date(); DateFormat dFormat=new SimpleDateFormat("yyyy-MM-dd"); return dFormat.format(date); }...
2019-03-11 20:35:18
1569
原创 阿里云服务器访问端口问题
最近小编将闲余时间写的项目部署到新买的阿里云服务器上时,(第一次使用阿里云服务器)遇到了一个头痛的问题,去访问页面时发现无法访问到页面,(中间省略我当时的心情)经过不懈的努力终于找到解决问题的方法了,请看下面:环境:阿里云服务器、 CentOS 7.4 64位第一步:登录阿里云控制台,打开安全组配置第二步:点击配置规则第三步:配置入方向规则 注意: ...
2018-11-21 10:51:18
953
原创 redis:Error condition on socket for SYNC: No route to host
redis问题解决:Error condition on socket for SYNC: No route to host第一种方案:1.telnet ip port 是否通2.使用netstat -tnlp 查询IP地址是127.0.0.1而不是0.0.0.0(127.0.0.1代表只能本机使用)3.修改master中redis.conf中bind绑定0.0.0.02.重启...
2018-08-20 21:57:46
6520
原创 解决Python3.0+selenium环境搭建问题
参考来源于:https://blog.youkuaiyun.com/qq_25964837/article/details/80295041https://www.cnblogs.com/JHblogs/p/7699951.html 1.使用pip下载selenium 命令:pip -install selenium 注意:出现问题:安装包出现Retrying (Ret...
2018-08-13 19:26:02
212
原创 shell脚本连接DB2数据库
DB2数据库连接:#dbname:数据库名#dbUserName:数据库用户名#dbPass:数据库密码db2 connect to dbName user dbUserName using dbPass#查询表并重定向到文件中db2 "select * from table" > file#断开连接db2 connect reset检测数据库是否连接:...
2018-07-20 13:55:19
9732
构建maven+Spring Boot+Mybatis+redis多模块层级项目
2018-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人