自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring初始化之ApplicationRunner、InitializingBean、@PostConstruct执行顺序

如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。结论:InitializingBean>@PostConstruct>ApplicationRunner。凡是继承该接口的类,在初始化bean的时候都会执行该方法。三、@PostConstruct注解的用法。他的执行时机为容器启动完成的时候。...

2022-08-31 17:24:02 988 2

原创 记录一次Dockerfile发布自己微服务的全流程

1、准备好我们自己的项目,并上传服务器服务端口8082测试接口上传到/opt/test目录下2、在/opt/test目录下准备Dockerfile文件#继承环境FROM java:8MAINTAINER zgr#数据卷目录VOLUME /tmp#将宿主机目录下的文件拷贝到镜像中ADD gtmcmsg-1.0-SNAPSHOT.jar test.jar#容器构建时候创建文件RUN bash -c 'touch /test.jar'#启动容器后执行jav

2022-04-10 16:34:53 269

原创 Mysql慢查询操作流程记录

查看慢查询是否开启show variables like '%slow_query_log';开启慢查询set global slow_query_log =on;查看慢查询日志存放位置show variables like '%slow_query_log%';更改慢查询时间 默认10秒show variables like '%long_query_time%';set global long_query_time =1;查看慢查询的sql数show gl

2022-04-02 15:03:51 131

原创 JUC学习(草稿备份)

容易混淆的概念 线程 wait 和 sleep 的区别: wait会让出CPU执行权 并且释放掉锁 sleep让出CPU执行权 但是不会释放锁多线程下集合的使用ArrayList是线程不安全的,多个线程修改同一个集合时会导致concurrentModification异常public static void main(String[] args) { List<String> list = new Arra

2022-04-01 13:52:05 69

原创 docker常用命令

docker服务命令启动systemctl start docker停止 systemctl stop docker重启 systemctl restart docker查看docker状态 systemctl status docker开机启动 systemctl enable docker查看docker占用空间 docker system df查看本地镜像 docker images 查找远程库镜像 docker search [--limit 5 显示前五个] redis下载镜像...

2022-03-31 10:31:33 1139

原创 简单Shell命令脚本

应用程序/用户通过Shell命令来驱动操作系统内核。脚本开头:#!/bin/bashecho: 可以理解为输出$n: n为几,就表示第几个参数,0表示脚本文件,10以上写法 ${10}$#:表示输入参数的个数$*:表示所有输入参数$?: 表示上一次执行命令的状态,0=成功,其他数字=失败[ ] 和 [ [ ] ]的区别:-z判断变量是否为空,空=0[ -z "$pid" ] 单对中括号,变量必须要加双引号[[ -z $pid ]] 双对中括号,变量不用加双引号

2022-03-27 15:03:00 1932

原创 Mysql主从同步原理

Master节点:做数据的增、删、改操作Slave节点:做数据的查询主从同步的好处:1、读写分离,查询操作分布在slave上,减少master压力2、高可用,主节点宕机从节点保留数据同步流程:1、当对数据在Master节点上进行增删改操作后,主节点会将这些操作记录在binlog日志中(二进制日志记录了对mysql 数据库的执行更改的所有操作 )2、从节点开启一个IO线程来读取binlog日志,并且写入从节点的relay log中3、从节点开启SQL线程读取rela

2022-03-21 10:06:11 956

原创 log4j2修复

1. 升级到最新版本:①Java 8 版本用户可升级至 Apache Log4j 2.16.0 版本,下载地址如下: https://logging.apache.org/log4j/2.x/download.html②Java 7 版本用户可升级至 Apache Log4j 2.12.2 版本,下载地址如下: https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.12.2③用户如已经根据《Apache Log4j任意代码执行

2022-01-05 09:50:14 489

原创 关于Redis Lettuce连接池的问题

SpringBoot 2.x 不再使用jedis做连接池,而使用Lettuce。Jedis和Lettuce的区别jedis和Lettuce都是Redis的客户端,它们都可以连接Redis服务器,但是在SpringBoot2.0之后默认都是使用的Lettuce这个客户端连接Redis服务器。因为当使用Jedis客户端连接Redis服务器的时候,每个线程都要拿自己创建的Jedis实例去连接Redis客户端,当有很多个线程的时候,不仅开销大需要反复的创建关闭一个Jedis连接,而且也是线程不安全的,

2021-12-16 14:58:05 4139 1

原创 线程池设置一个线程的执行时间

public class ThreadTest { public static void main(String[] args) throws InterruptedException, ExecutionException { final ExecutorService exec = Executors.newFixedThreadPool(1); Callable<String&gt.

2021-12-11 17:05:47 1918

原创 Cors开发环境跨域配置

@Configurationpublic class AlmWebMvcConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { return new AlmLocaleResolver(); } @Profile("dev") @Override public void addCorsMappings(CorsRegistry .

2021-11-29 18:22:19 130

原创 数据库多数据源的配置

没啥好聊的,直接上代码注释1、依赖文件和配置文件 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <

2021-10-25 23:13:58 3129 6

原创 ElasticSearch介绍使用(附api demo)

名词解释:正排索引:​ 直接根据主键索引 id 查询data内容iddata111我是人110我是中国人倒排索引:​ 先对data分词,关联id,从而获取完整数据keywordid我111,110人111,110中国人110ElasticSearchElastic有一条完整的产品线:Elasticsearch、Logstash、Kibana等,前面说的三个就是大家常说的ELK技术栈。Elasticsearch

2021-10-03 17:41:16 406

原创 策略+工厂模式解决大量if..else的逻辑处理

优化前的接口工作中肯定会遇到大量if…else的情况,判断量小还可以,如果做大量判断会使得代码非常臃肿。@RestControllerpublic class Controller { @GetMapping("/{name}") public String getDat(@PathVariable("name") String name){ if(name.equals("AA")){ new AAStrategy().getDataA();

2021-08-21 17:56:52 200

原创 关于EasyExcel的使用

导入依赖坐标<!-- EasyExcel --><dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version></dependency>实体对象@Data@ColumnWidth(20) //表格列宽public cla

2021-08-15 00:08:48 510

原创 pom文件配置指定阿里云maven镜像

<repositories> <repository> <id>nexus-aliyun</id> <name>nexus-aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled&gt.

2021-08-08 21:10:24 932

原创 实现自定义异常以及统一返回类型(国际化配置)

做一个简单的配置实现返回项目中返回类型统一1、自定义返回对象result@Datapublic class Result<T> { private String code; private String msg; private T data; public Result(String code, String msg) { this.code = code; this.msg = msg; }

2021-08-01 14:52:51 766

原创 列式数据库,OLAP与OLTP

刚接触clickhouse,对于olap与oltp有点蒙圈。记录一下当前的认知,比较浅显,有志之士多补充修正。OLTP:联机事务处理。主要用于数据库,对业务数据进行数据采集,crud,如mysql这些库。 如对user表,查询id=1的学生信息。 OLAP:联机分析处理。主要用于数据仓库,以大量历史数据为基础,主要进行分析查询。 如查询user表中年龄在18-20区间段的所有学生姓名。列存储的数据库更适合OLAP行存...

2021-07-16 15:14:51 254

原创 关于mysql中时间字段的设定

对于一些必要的属性如createTime和updateTime,之前一直在构造方法中实现,后来发现mysql自己提供了这些麻烦玩意儿。表结构CREATE TABLE `t_baby` (`id` int(11) NOT NULL AUTO_INCREMENT,`usd` int(11) NOT NULL,`nickname` varchar(64) DEFAULT NULL,`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

2021-07-15 18:26:39 850

原创 关于@JsonIgnore和@JSONField(serialize = false)都失效

遇到这种情况,在属性上分别加了这俩注解都没反应,所以选择了在类上加@JsonIgnoreProperties可以使用@JsonIgnoreProperties({"hostId","creatTime"})public class DeviceStateEntity implements Serializable { /** * 主键 */ @TableId("host_id") @JsonProperty(value = "hostId") p

2021-07-15 17:48:39 1055

原创 有关kafka

消息队列的两种模式1、点对点,一条消息只能被一个消费者所消费2、发布订阅生产者将消息发布后,订阅的消费者会拿到该消息发布订阅模式分为推模式和拉模式两种:1、推模式(producer将消息推送到可用的consumer中)缺点:不能根据每个消费者的消费能力来选择性推送2、拉模式(producer有消息后,consumer从topic中根据自己的消费能力拉取消息)缺点:consumer需要维持一个长链接,一直查看topic中有没有新的消息,没有数据时会导致空轮询​ topic中要存一个消费

2021-07-13 21:35:36 119 2

原创 实现一个安全的单例模式-----懒汉式

public class gg { private static volatile gg INSTANCE; //JIT private gg() { } public static gg getInstance() { //双重检查 //第一次检查:为了减少开销,避免将判断条件放在锁之后,不断上锁关锁的损耗 if (INSTANCE == null) { synchronized (gg.class

2021-06-22 16:51:07 74

原创 JVM垃圾回收

JAVA程序运行流程JVM数据区组成会发生内存泄漏: 虚拟机栈、本地方法栈、堆堆内存异常不断的New对象,当最后一个对象创建后,无法为其分配内存空间栈内存异常不断有变量创建,造成栈内存满垃圾回收机制一、首先判断清理哪些内容垃圾回收前要判断一个对象是否存活,哪些死去。引用计数器算法(Python):给每个对象添加一个计数器,当有一个引用时,计数器+1,引用失效,计数器-1。为0时,说明没有引用。但是没办法解决对象之间循环引用。可达性分析算法(JVM):通过一个称为“GC Roo

2021-05-16 16:05:03 55

原创 SpringBoot加载自定义配置类时为空的问题

配置类@Component@ConfigurationProperties(prefix = "kip")@PropertySource(value = {"classpath:kuaiIp.properties"})public class KuaiIPconfig { public static String orderId; public static String apiKey; public static Integer num;

2021-04-21 10:21:19 742

原创 kafka群起脚本

(1)在/root/bin目录下创建脚本kf.shvim kf.sh(2)脚本内容#!/bin/bashcase $1 in"start"){ for i in ip1 ip2 ip3 do echo " --------启动 $i Kafka-------" ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.pr

2021-03-23 16:17:20 254

原创 Zookeeper与Dubbo的介绍与基本案例

装逼的话很多,看这儿就足够了!分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上一、Zookeeper入门Zookeeper:是一个为分布式应用提供协调服务的Apache项目。举例: 服务端将自身的状态信息存储到zookeeper上,然后客户端注册到ZK上,一单状态信息发生改变,通知ZK。Zookeeper其实采用的是文件系统+监听机制就是将一个集群作为一个Znode结点(类似linux文件系统的方式),集群中的各个结点就是这个Znode结点下的子结.

2021-03-19 02:18:14 677 4

原创 swagger

Swagger使用步骤导入依赖<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId>

2021-03-05 15:03:19 105

原创 alibaba的JSONObejct常用转换方法

Java对象---->JSON对象Stu stu =new Stu(1,"JAAR","male");System.out.println(JSONObject.toJSON(stu));// JSON对象 {"sex":"male","name":"JAAR","id":1}JAVA对象---->JSON字符串String json = JSONObject.toJSONString(stu);System.out.println(json); //JSON字符串 {"i.

2021-03-04 17:25:17 446 1

原创 Nginx常用命令

Nginx常用命令:运行命令(后台启动):start nginx 启动nginx服务运行命令(前台启动):nginx -g “daemon off;”停止命令:nginx -s stop 停止nginx服务重启命令:nginx -s reload(启动多个nginx时,主从进程会乱序,stop命令无效)彻底杀死进程:taskkill /f /t /im nginx.exe...

2021-03-04 14:54:08 509 1

原创 PageHelper参数详解

PageInfo参数:public class PageInfo<T> implements Serializable {private static final long serialVersionUID = 1L;//当前页private int pageNum;//每页的数量private int pageSize;//当前页的数量private int size;//由于startRow 和endRow 不常用,这里说个具体的用法//可以在页面中"显示startRow

2021-03-02 10:09:14 1288

原创 Thymeleaf前台页面直接访问后台Service

前台页面标签:<select name="roomTag" class="form-control m-b" th:with="type=${@dict.getType('lndoor_sensor_position')}"> <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${#strings.contains(dict

2021-03-01 15:26:10 1266

原创 将Map中的value降序排列

//降序排序 List<Map.Entry<String, Double>> list = new ArrayList<>(pMap.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Double>>() { @Override public int compare(Map.Entr

2021-02-28 18:04:25 108

ElasticSearch的restful参考文档.md

ElasticSearch的restful参考文档.md

2021-10-01

postman调ES的操作接口

postman调ES的操作接口

2021-10-01

空空如也

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

TA关注的人

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