- 博客(35)
- 收藏
- 关注
原创 kafka 使用
pom引入依赖 配置文件增加相关配置 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-kafka</artifactId></dependency>
2022-04-27 19:06:35
1723
2
原创 springboot — es使用crud
第一步:引入es相关包<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.16.2</version></dependency><dependency>
2022-04-24 14:45:04
2371
2
原创 DefaultTransactionDefinition:显示声明事物
@Autowired private DataSourceTransactionManager transactionManager; @Transactional public boolean checkout() { DefaultTransactionDefinition definition = new DefaultTransactionDefinition(); // 设置事务名称 definition.setN...
2021-12-20 17:10:26
6016
原创 applicationContext
1. 获取Bean对象applicationContext.getBean(beanName, bean.class);2. 发布消息事件//obj为传递的事件对象applicationContext.publishEvent(Object obj);// 订阅消息事件:使用注解@EventListener,该注解默认是同步执行的,若要实现异步执行,需加@Async。方法参数为事件对象,指明要监听订阅的事件。public void execute(Object obj) {}..
2021-12-16 14:46:26
290
原创 rabbitmq 延时队列
/** * 动态延时通知 * * @param exchange queue名字 * @param routingKey 路由key * @param object 消息体 * @param noticeTime 通知时间 (时间戳-毫秒)*/ public void sendDelay(String exchange, String routingKey, Object object, Long not...
2021-12-15 19:31:26
1791
原创 解决:mybatis plus updateById 为null 则不更新
局部设置:在实体类属性上设置如下即可@TableField(value = "test", updateStrategy = FieldStrategy.IGNORED)private String test;
2021-11-13 11:44:34
481
原创 Kafka启动失败报错InconsistentClusterIdException
报错:解决 :切换到配置文件server.properties中存放kafka日志的目录,修改meta.properties文件中的clusterId为日志文件中新的 Cluster Id。重新启动。
2021-10-30 16:36:45
1081
原创 解决idea 拉取新项目没有maven窗口
双击shift出现搜索框,输入maven,点击Add Maven Projects,选择项目的pom.xml文件,就出现啦
2021-10-27 11:26:54
1848
原创 服务之间接口调用Feign
采用OpenFeignpom引入:spring-cloud-starter-openfeign 启动类加注解:@EnableFeignClients 创建调用接口client端,client端上标明注解 @FeignClient(value = "kkb-dtg-admin"),并增加调用的接口方法。 注解@FeignClient中value代表服务提供者在eureka中注册的名称 接口的GetMapping地址是服务提供者的接口地址。(e.g/提供者的context-path/提供者的...
2021-09-01 20:37:48
224
原创 2021-08-30 Async method
1. 启动类上要加开启异步方法的注解@EnableAsync2. 线程池配置@EnableAsync@Configurationpublic class ThreadPoolConfig { /** * 初始化对象 * * @return 线程池属性配置对象 */ @Bean @ConfigurationProperties(prefix = "async.thread.pool") public AsyncThr
2021-08-30 19:49:28
157
原创 幂等方案
方案一:数据库唯一主键 (业务场景:下单等存在唯一主键的)① 客户端执行创建请求,调用服务端接口。② 服务端执行业务逻辑,生成一个分布式 ID,将该 ID 充当待插入数据的主键,然后执数据插入操作,运行对应的 SQL 语句。③ 服务端将该条数据插入数据库中,如果插入成功则表示没有重复调用接口。如果抛出主键重复异常,则表示数据库中已经存在该条记录,返回错误信息到客户端。方案二:数据库乐观锁 (业务场景:更新订单状态等相关的更新场景)数据库乐观锁方案一般只能适用于执行“更新操作”的过程,我们可以提前.
2021-03-08 13:16:35
100
原创 MySQL索引
主键索引:因为对于主键索引是不可能重复的,所以在保存到数据页的时候是直接追加插入的(我们默认主键是自增的)非主键索引:非主键一般是可以重复的,假设此时某个联合索引字段的值真的都是一样的,此时只能按照主键字段来排序,这就是为什么非主键索记录在保存的时候还保存一个主键字段的作用索引如果建立太多会占用太多的空间。因为MySQL 会为每个索引维护一颗 B+ 树,毕竟非主键的字段一方面不一定是递增的,另一方面可能是重复的。所以就基于这点,那些频繁增删的字段一定不适合来做索引索引查询遵循原则:等值匹配原则、最左.
2021-03-08 12:30:27
132
原创 RabbitMQ的几种模式(二)
接着上篇pubsub发布订阅模式一个生产者通过交换机发布到队列中再分别传输给消费者。即生产者P发出的消息传输到交换机,交换机再分发给绑定在它身上的队列,再发送给消费者,C1和C2都会接收到。交换机类型为Fanout(广播型)。建立一个Producer和多个Consumer 来模拟一个Producer发送天气信息 分别分发到消费端。package com.orange.rabbitmq.pubsub;import com.orange.rabbitmq.utils.MQConstant;i
2020-12-03 16:01:27
145
原创 RabbitMQ的几种模式(一)
RabbitMQ存在6种实现 如下图(当前只研究前5种简单demo实现)HelloWorld 简单模式如下图 简单模式就是一个生产者通过MQ Server对应一个消费者。对于MQ服务器来说,无论是生产者还是消费者,都相当于客户端所以我们在pom中引入amqp-client客户端依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artif
2020-11-30 16:17:48
254
1
原创 rabbitmq 修改密码
# 查看用户rabbitmqctl list_users# 修改用户名对应密码rabbitmqctl change_password Username 'Newpassword'
2020-11-30 11:16:12
2436
原创 Arthas简单安装使用
最近看到jvm相关的,发现了这个好的监测工具。记录一下安装使用下载运行wget https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar运行出现图标运行成功使用dashboard命令输入dashboard,会出现如下图所示的一个界面。该界面总体分为3个板块:进程列表可实时查看到cpu情况Memory模块可看到该项目的2大区域内存使用/总和情况:heap区 --> 年轻代eden区、年
2020-11-18 22:46:46
412
原创 CentOs安装JDK
去官网下载jdk下载linux系统指定的jdk压缩文件利用服务器传输工具如(Transmit)上传至服务器。我是之前有一个jdk8的压缩包就直接上传了一个。解压文件夹tar -xvf jdk1.8.0_25.tar配置jdk环境pathvim /etc/profile切换至插入模式,在文件末尾插入jdk存放路径以及classpath和path,保存。运行配置文件生效source /etc/profile查看是否安装成功java -version出现java版本即安装成功,如下图.
2020-11-18 22:15:04
96
原创 CentOs7 安装使用Redis
安装下载Redis压缩包wget http://download.redis.io/releases/redis-4.0.6.tar.gz解压tar -zxvf redis-4.0.6.tar.gz解压后得到(redis-4.0.6)文件夹,进入该文件夹,编译安装cd redis-4.0.6make install编译安装完成后 启动Redissrc/redis-server redis.conf &ps 看下结果 进程启动成功使用设置密码(打开配置文件 设
2020-11-11 21:29:06
92
原创 使用Redis increment 生成订单编号
生成订单号 @Autowired private StringRedisTemplate redisTemplate; private final String prefix = "order:id:"; @GetMapping("/getOrderNo") @ApiOperation(value = "获取订单号") public Result getOrderNo() { // 201110 String date = DateTime
2020-11-10 17:06:38
909
原创 java发送邮件通知
引入jar包 <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.3</version> </dependency>创建工具类import com.sun.mail.util.MailSSLSocketFacto..
2020-10-09 14:44:40
1139
原创 服务器 定时任务清缓存
在服务器/tmp目录下建一个脚本文件CleanCache.sh#!/bin/bash #系统分配的区总量 mem_total=`free -m | awk 'NR==2' | awk '{print $2}'` #当前剩余的大小 mem_free=`free -m | awk 'NR==3' | awk '{print $4}'` #当前已使用的used大小 ...
2020-03-30 11:55:41
941
1
原创 使用Apache POI导出Excel
导包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.16</version> </dependency>...
2020-03-25 18:14:16
205
原创 理解单例模式
什么是单例模式定义为单例模式的类 在程序中有且只有一个实例 单例模式特点1. 只有一个实例2. 构造函数私有化3. 对外提供获取实例的静态方法单例的实现单例有五种实现方式:饿汉、懒汉、双重验证锁、静态内部类、枚举单例饿汉@Slf4jpublic class Singleton { /** * 自我实例化 */ private s...
2020-03-17 19:14:06
125
原创 使用AOP切面打印系统日志
拦截接口的调用 打印日志@Aspect@Component@Slf4jpublic class MethodLogAspect { @Around(value = "execution(* com.xxx.controller.*.*(..))") public Object around(ProceedingJoinPoint point) { StopWatch clock ...
2020-03-10 17:37:51
410
原创 Java 使用阿里云短信服务发送短信验证码
阿里云发送短信分为以下几个步骤在阿里云开通短信服务 生成获取AccessKeyId 和 AccessKeySecret在控制台创建、申请短信模版,申请通过即可使用。记下<模版CODE>创建短信工具类方便调用发送短信@Slf4jpublic class SmsUtils { // 发送短信 public static String sendSmsAliyun(St...
2020-03-09 11:29:42
668
原创 java nginx连接前后端
使用nginx将前后端连起来,基本分为3部:在服务器新建两个文件夹,分别用来存放前端文件和后端jar包文件,并将文件放进去修改配置文件,配置前端路径和后端路径跳转访问连接主要操作如下:Linux命令 :- mkdir /home/tools/vistor_web (建前端文件夹名为 vistor_web)- mkdir /home/tools/vistor (建前端文件夹名为...
2020-03-06 18:05:17
1911
原创 java8
公用list stream表示使用java8流操作filter 过滤筛选 例如下: 从list中筛出moduleTitle为ABC的数据(忽略大小写),并将结果收集起来放到一个新的list中。e.gList<ModuleConfig> list = moduleConfigService.getAll(); --> 查配置表获取所有配置信息 List&l...
2020-03-05 19:58:52
390
原创 Spring Security +JWT 登录身份信息验证
加入依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency><dependency> &l...
2020-03-04 18:35:29
792
原创 sql优化总结
数据库表数据量小的时候,sql语句影响性能可能没那么明显。一旦数据量增大,sql语句是影响程序运行性能的一个重要因素。所以sql优化就变得极为重要了。标题 给表建索引,按照索引查询,提升查询效率。表就像一本书,索引就像是目录一样的存在,方便查找。索引就是通过事先排好额顺序,从而在查找时可以应用二分查找或者其他的高效率的算法,一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2...
2020-01-09 16:41:23
144
原创 PhantomJs截图导出问题
1. 问题1:PhantomJs预览页有图,导出页面为空白页 图1为预览图 、图2为导出图原因:地址调用头拼错 需要修改。2. 问题2:中文字体不展示原因:缺少字体包,需安装字体包:linux执行命令:yum install bitmap-fonts bitmap-fonts-cjk3. 问题3:字体大小显示和预览图不一致解决办法:参考https://bingoz...
2019-11-12 16:13:09
906
原创 java 使用mybatis查询出现的时区问题
1. 问题场景:使用LocalDateTime,mybatis查出来的时间比数据库表里存的时间快了13个小时。如图:图一是表里存的时间数据,图二是debug时查出来的时间数据,快了13个小时2. 找到原因:这是时区问题,mysql时区设置默认是操作系统时区 而mybatis中间使用Calender做类型转换,为CST时区3. 解决办法:两种 1> 修改数据库系统配置...
2019-10-01 14:29:21
3691
1
原创 jar包和war包的区别
JAR:Java ARchive File,java归档 - 用于将多个.class类文件合成一个文件,打成一个包 类似于大家平常用的压缩包ZIP。区别就是Jar包会在打包的时候自动生成一个META-INF文件夹,里边包含MANIFEST.MF和maven项目配置pom文件。 - jar文件运行:jar文件可放在服务器的任何位置 执行只需要找到j...
2019-09-28 16:10:42
289
原创 使用Git合代码到指定分支(feature)
使用Git整合代码1.将本地分支的更新传到远程主机 Step: 1. git add . 2.git commit -m "description" 3. git push 远程主机(origin) 本地分支2.合并分支 Step:1. git checkout feature(要合到的总分支) ...
2018-02-23 20:48:24
2565
原创 Velocity使用过程中出现的ParseErrorException问题
这个主要是由于Velocity标签使用不当造成的(#end)。标签一定要成对的出现。这里介绍一下Velocity的常用标签:1.设置/赋值:#set($name='yue') $!name2.属性调用:$!{floatLayer.id} 方法调用:$!{floatLayer.functionName()}3.注释:单行 (##content)多行(#*content*#)4.判断:#...
2018-02-23 19:56:44
5127
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人