自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 new一个对象引发的疑问

对象创建

2023-02-26 18:24:56 138 1

原创 jvm指针压缩

jvm指针压缩

2023-01-02 21:29:56 242

原创 jvm监视及分析故障排查常用工具列表

监视分析jvmJconsoleJvisualvmjcmdjmc监视jvmjpsjstatjstatd 允许远程监视工具连接到jvm故障排除jinfojhatjmapjsadebugdjstack

2022-05-10 15:11:54 173

原创 微服务设计及开发的基本原则

微服务的拆分原则1.单一职责原则 单个服务只做一块或一类功能2.共同封闭原则 变化仅限服务内3.高内聚低耦合原则 内紧而外松4.单向依赖原则 服务间单向依赖,避免或减少循环依赖微服务开发注意事项1.需求设计中避免出现微服务跨库关联的业务,如必须可通过设计冗余字段、数据定时同步、借助公共中间件存储。2.控制整个链路不超过三层,网关就是一层,每增加一层就会多一次restful请求,一次大概耗时100ms3.避免单个交易出现过多的restful请求4.避免出现分布式事务工程命名风格统一

2022-05-10 11:58:55 550 1

原创 数据库连接报错 Communications link failure 连接失败解决办法

数据库连接报错 Communications link failure 连接失败可能的原因有1.mysql数据服务没有开启2.网络问题 在当前服务器ping 一下看看是否能连接上 mysql服务器3.wait_timeout的值需要大于数据库连接池的最大超时时间,否则数据库把连接关了而连接池还没关则造成连接不可使用mysql数据库有一个 wait_timeout(非交互连接超时时间,即jdbc连接) 和interactive_timeout(交互连接超时时间,即客户端连接)配置,默认是8小时,8小

2022-05-10 11:57:52 146785 1

原创 streamApi三种节点

streamApi简化了java对数据集操作的语法,代码简洁。 支持多线程并行处理,提高了资源利用率。

2022-05-10 11:10:48 93

原创 知识点汇总1

Java面向对象有哪些特征,如何应用 面向对象编程是利用类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系。万物皆对象,对象是具体的世界事物,面向对象的三大特征封装,继承,多态。封装,封装说明一个类行为和属性与其他类的关系,低耦合,高内聚;继承是父类和子类的关系,多态说的是类与类的关系。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对

2022-04-14 13:58:33 832

原创 jvm调优

-* 标准参数 如: -D<名称>=<值> 设置系统属性-X 参数(非标准参数) 不同版本jdk可能不一样-XX 参数(使用率较高) 主要用于jvm的调优和debug 一种是boolean类型(:+或者-属性名),一种是非boolean类型 -XX:+DisableExplicitGC 表示禁用手动调用gc操作 -XX:NewRatio=1 表示新生代和老年代的比值常用非标参数-Xms 设置初始 Java 堆大小-Xmx 设置最大

2022-04-01 18:07:21 1003

原创 mysql优化

数据库优化1.慢查询日志此功能默认不开启,开启后查询超过一定时间才会记录到慢查询日志,一般默认是10sshow variables like ‘slow_query_log’; //查询是否开启show variables like ‘long_query_time’; //查询超过多少时间会记录到慢查询日志SHOW VARIABLES LIKE ‘%query%’;//查询所有query相关的配置常用参数及设置#–是否开启慢查询日志slow_query_log=1–指定多少秒返回查询的结

2022-03-31 18:04:58 1355

原创 docker基础

docker容器化技术,是一个开源的应用容器引擎 解决了软件跨环境迁移的问题docker的架构 仓库里存放镜像(官方仓库和私有仓库),使用时本地没有该镜像则从仓库下载 容器是从镜像创建出来的(类似于类和对象的关系) 镜像的本质是多层文件系统docker安装步骤1)yum update 升级本地yum包2) yum install -y yum-utils 安装工具集3)yum-config-manager --add-repo https://download.dock

2022-03-28 17:52:09 2241

原创 springCloud

springcloud是一系列框架的有序集合 采用http restful风格完成通信服务治理(服务的注册与发现) 注册中心的工作 springcloud常用的注册中心有 Eureka consul nacos@EnableEurekaServer 在Eureka服务器模块配置类上加此注解,启用Eureka服务器1.引入依赖<dependency> <groupId>org.springframework.cloud</groupId>

2022-03-27 23:15:02 489

原创 rabbitMQ

rabbitMQMQ message queue 消息队列MQ三大功能 流量消峰 应用解耦 异步处理MQ的选择kafka 追求的是高吞吐量,有日志采集功能肯定首选,大数据量的数据收集业务.RocketMQ 追求的是可靠性,金融互联网领域首选 用于对可靠性要求很高的场景RabbitMQ 追求的是功能完备,使用方便,社区活跃 适合中小公司使用RabbitMQ负责接收,存储,转发消息四大核心概念producer生产者consumer消费者exchange交互机 只负责转发不负责存储

2022-03-25 16:47:35 3430

原创 mybatis-plus

mybatis-plus只对mybatis进行增强不做改变mybatis-plus主键生成采用的雪花算法,所以mysql数据库定义id的时候选择bigint类型,分布式系统采用雪花算法生成id 可以保证id不重复lombok除了需要导入依赖 还需要在idea中安装一下它的插件使用mysql 8 及以上版本需在连接url的参数中指定时区 serverTimezone=GMT%2B8 东八区mybatis-plus需要我们创建的mapper接口继承BaseMapperinsert方法既可以添加数据

2022-03-23 17:29:11 929

原创 mybatis-plus多数据源实现读写分离

1.引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.5.0</version> </dependency>2.appl

2022-03-23 14:53:21 1755

原创 mybatis-plus代码生成

1.导入maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <depende

2022-03-23 14:05:19 936

原创 tk.mybatis通用mapper maven插件的使用

1.导入插件,通用mapper是依赖于mybatis-generator的,所以只是在其基础上的优化 生成的xml 和 mapper接口中没有那些方法了,但是mapper接口要继承通用Mapper接口<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</a

2022-03-22 17:43:24 1542

原创 mybatis-generator maven插件的使用

1.导入maven插件<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <exe

2022-03-22 16:50:31 1712

原创 正斜杠还是反斜杠

今天遇到一个问题,在配置mybatis的映射器扫描的时候,开始时路径配置如下,是没问题的mybatis:mapper-locations: mapper\UserMapper.xml后因为又增加了几个Mapper.xml文件,于是配置改成了mybatis:mapper-locations: mapper*.xml结果就报错了,找不到mapper对应的方法.正确写法:mybatis:mapper-locations: mapper/*.xml在java代码中表示路径尽量还是用正斜杠,反斜杠

2022-03-22 12:22:19 460

原创 springboot

springboot 能够快速的构建spring项目,基于约定优由配置,减少了配置项,大大提高开发效率spring的缺点是 配置繁琐,依赖繁琐springboot的功能 1.自动配置 2.起步依赖(将具有某种功能的坐标打包在一起) 3.辅助功能(嵌入式服务器,安全,指标,健康监测等)springboot并不是对spring功能的增强,只是提供了一种快速使用spring的方式springboot 项目打包成jar,它是用引导类的main方法启动的https://docs.spring.io/spr

2022-03-21 19:41:21 282

原创 redis高级

ttl指令 查看key的剩余存活时间 -1永不失效 -2已经失效或不存在 正数剩余存活时间过期数据也不是立即就删除的,有三种处理方式1.定时删除 拿时间换空间 不建议2.惰性删除 拿空间换时间3.定期删除 折中方案 随机抽查,重点抽查淘汰策略 当redis内存空间不足的时候将启动淘汰策略三大类 1.检测易失数据 一般选 lru (最近最少使用) 或 lfu(最近使用次数最少)2.检测全库数据3.放弃数据驱逐redis高可用 主从复制 一个master 多个s

2022-03-20 22:19:54 678

原创 多线程相关

实现多线程的三种方式继承Thread类 实现Runnerable或 Callable接口(实现Callable接口的类的对象要传入FutureTask对象的构造方法,将futureTask对象传给Thread对象)线程的优先级是1-10 默认是5单机解决多线程问题,可以使用synchronized 或 lock接口 (ReentrantLock实现类) lock() unlock(),多机器涉及同步并发的时候就需要引入分布式锁死锁 多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无

2022-03-18 23:55:33 213

原创 zookeeper

zookeeper是Apache Hadoop 项目下的一个子项目是一个树型目录服务,是一个开源的分布式的分布式应用程序协调服务zookeeper的主要功能: 配置管理 分布式锁 集群管理zookeeper是一个树型目录服务 它的每一个节点都被称作ZNode,每个节点都会保存数据及节点信息(不仅可以当做一个目录,也可以当做一个文件,它即可以有自己的子节点,也可以存储少量数据1MB)ZNode可以分为四种persistent 持久化节点ephemeral 临时节点 -epersistent_se

2022-03-18 16:31:00 12338

原创 dubbo

dubbo 是SOA时代的产物,springcloud是微服务时代的产物大型互联网项目的目标: 高性能 高可用 可伸缩 高可扩展 安全性 敏捷性集群 一群机器做相同的事分布式 一群机器做不同的事,但组合起来能完成一个业务RPC 远程过程调用架构的进化 单体架构->垂直架构->分布式架构->SOA架构(面向服务的架构,ESB企业服务总线,服务中介)->微服务架构dubbo是阿里巴巴公司开源的高性能,轻量级的javaRPC框架. 致力于提供高性能透明化的RPC远程服务调用方案

2022-03-17 19:03:19 2383

原创 版本管理工具 svn及git

git的下载与安装下载地址: https://git-scm.com/download 下载完毕,一路默认安装即可常用git托管服务github https://github.com/gitlab https://about.gitlab.com/码云 https://gitee.com设置用户名称和email地址git config --global user.name “qingtian”git config --global user.email “[email protected]

2022-03-16 17:30:03 1129

原创 oracle基础

oracle默认的端口号是1521plsql登录方式:1.plsql登录的时候database 里填写 远程数据库服务器ip:1521(oracle默认端口)/数据库的名称(一个服务器上可能有多个数据库) 账号默认用system 密码自己安装时设置的 数据库名称也是自己设置的2.在tnsnames.ora文件中配置数据库信息,将配置文件所在目录加入到环境变量TNS_ADMIN中,以便plsql识别,这样登录时选择数据库的id(ROOT就是一个id)列表tnsnames.ora内配置信息如

2022-03-15 17:39:07 5202

原创 maven高级内容

maven是一个项目管理工具 它有两大功能 1.依赖管理 2.一键构建依赖传递,导入一个jar包那么他所依赖的jar包也会被导入到项目.导入多个jar包,它们各自有各自依赖的jar包,依赖的jar包相同版本不同,那么就会产生依赖冲突依赖冲突的解决方式1.maven的依赖调节原则 第一声明者优先原则 路径近者优先原则2.依赖排除 在pom文件中用exclusions 标签排除jar包的某个依赖3.版本锁定 在dependencyManagement 标签内定义依赖坐标信息及版本即可锁定项

2022-03-14 23:42:11 451

原创 ssm框架整合

三大框架各司其职,controller层注解交给springmvc去扫描,spring负责service和dao层的注解扫描,mybatis扫描的是映射器 其他两个框架扫描的是bean框架整合分步骤进行,首先保证spring框架配置成功,测试通过再整合其他框架,建议每个框架配置完先单独能够使用,再整合,遇到问题一步一步解决servletContext 域是javaweb中作用范围最大的域,它是随着web容器创建而创建,销毁而销毁的. 用监听器监听它的创建,初始化spring配置文件 <cont

2022-03-14 16:39:59 681

原创 mybatis基础

mybatis框架原始jdbc操作存在很多弊端:1.数据库连接创建,释放频繁,造成系统资源浪费,从而影响系统性能2.sql语句在代码中硬编码,造成代码不易维护,实际应用中sql语句变化很大,sql语句的变化需要改变java代码3.查询时需要将结果集的数据手动设置到实体中,插入语句需要将实体属性手动设置到sql占位符中mybatis给出的解决方案1.使用数据库连接池初始化连接资源2.将sql语句抽取到xml配置文件中3.利用反射等机制,自动将实体属性与表字段进行映射mybatis默认事务是不

2022-03-14 10:03:01 166

原创 springMVC常用内容的配置

springMVC中可以自定义类型转换器,以便参数以需要的格式进行绑定,解析WEB-INF 内资源时配置内部资源解析器(框架提供)及参数,放行前端资源,配置多部分文件解析器以上传文件,配置异常解析器(自定义),配置拦截器(自定义)<mvc:annotation-driven conversion-service="conversionServiceFactory"></mvc:annotation-driven><bean id="conversionServiceFact

2022-03-12 23:01:37 537

原创 springMVC基础

springMVC是表示层的框架,它的入口是一个servlet 前端控制器 DispatcherServlet工程搭建,首先在web.xml中配置 DispatcherServlet,url-pattern为/ ,load-on-startup 为1 代表web容器初始化的时候一起初始化 dispacherServlet 并且加载它的初始化参数init-param(spring配置文件) dispacherServlet org.springframework.web.servle

2022-03-12 23:00:16 564

原创 spring事务控制不生效问题

使用spring事务控制时用的QueryRunner来操作数据库,然后操作过程出异常,发现事务并未生效换成jdbcTemplate后发现事务生效了. <bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner"> <constructor-arg name="ds" ref="dataSource"></constructor-arg> </bean>

2022-03-10 14:15:30 521

原创 AOP相关

AOP 面向切面编程用ThreadLocal对象把当前线程和connection数据库连接对象绑定,这样多个sql使用同一个数据库连接才能构成一个事务 数据库连接对象还回去的时候记得和ThreadLocal解绑ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量是当前线程独有的,与其它线程隔离的jdbcTemplate每次执行都会重新获取一个连接,执行完毕再归还,不支持传入固定的数据库连接,在批量查询的情况下不建议使用,commons-dbUtils 中的queryRunn

2022-03-10 11:00:28 775

原创 spring基础

spring以IOC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为主要特点的展现层springMVC 持久层springJDBC 业务层事务管理spring的优势:1.方便解耦,简化开发2.AOP编程的支持3.声明式事务的支持4.方便程序的测试5.方便集成各种优秀框架6.降低 JavaEE API 的使用难度spring官方网站 https://spring.io解耦 降低程序之间的依赖关系 开发中要

2022-03-09 12:11:14 98

原创 linux和nginx相关

CRT和xshell都是Linux远程客户端tar -zxvf a.tar.gz 解压到当前目录 tar -zxvf a.tar.gz -C bbb 解压到指定目录tar -zcvf a.tar.gz a.log 将a.log 压缩并打包成 a.tartar命令 当文件是gz 的是压缩了,才需要在命令中有 - zrwx 421/etc/hosts 里面可以做域名和ip的映射getconf LONG_BIT 获取当前服务器的位数source /etc

2022-03-09 09:26:00 438

原创 maven基础

maven 直接百度搜索maven 找到官网地址,下载所需版本即可在系统环境变量中新增配置 MAVEN_HOME(maven的安装目录 D:\software\common\apache-maven-3.8.4) 然后 环境变量path 中追加 %MAVEN_HOME%\bin;打开cmd 命令 ,mvn -v 看到出来版本信息了,证明已经安装好maven 依赖管理 即对jar包的管理maven 一键构建概念 使用集成的tomcat插件,不再使用本地的本地仓库(默认地址 用户目录/.m2/re

2022-03-09 09:13:42 205

原创 @PostConstruct和@PreDestroy注解不生效问题

今天在之前创建的一个用xml配置spring bean的工程,改为使用配置版来配置bean结果发现初始化方法,销毁方法用xml配置生效,用注解@PostConstruct和@PreDestroy不生效.但是重新建了一个工程注解确是生效的.中间spring换过版本,maven依赖虽然没有报错,但是也显示版本冲突.然后删除 .idea .imi 重启后可以了,...

2022-03-06 18:34:42 679

原创 使用 Notepad++修改远程服务器文件

1 安装插件打开 Notepad++ >> 插件 >> 插件管理搜索 NppFTP, 选中 安装2 使用插件 >> NppFTP >> show NppFTP window就会显示出远程连接窗口点击小齿轮,选择 Profile settings,然后配置远程连接配置完成,点击 Close然后点击远程连接窗口的连接按钮,选择要连接的服务器如果未能显示服务器上的所有文件,可以点击刷新。此时,在Notepad++ 中就可以对服务器上的文件进行操作

2022-03-05 11:52:04 460

原创 nginx启动报错处理方法 error while loading shared libraries:libpcre.so.1:cannot open shared object file:No su

启动nginx报错:error while loading shared libraries:libpcre.so.1:cannot open shared object file:No such file or directory先查找到文件:find / -name “libpcre.so.1”找到该目录后,把路径放到 /etc/ld.so.conf这样路径就被包含到库文件的路径当中了然后执行:ldconfig让修改生效。操作:echo “/usr/local/lib” >> /e

2022-03-05 11:23:20 6411 1

原创 linux所需的pcre库和zlib库从网上下载的步骤

在linux服务器安装Nginx的时候需要下载一些依赖的库,其中就有pcre 和 zlib正常情况下执行如下命令就可以了yum install -y pcre pcre-develyum install -y zlib zlib-devel但是有时候会有各种原因报错,你可以选择去解决,也可以换个思路,那么我不从yum源下载了,直接从网上下载所需的库步骤如下:1.安装PCRE库wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40

2022-03-05 11:10:23 6487

转载 163yum源报错问题

最近wget http://mirrors.163.com/.help/CentOS6-Base-163.repo得到的这个yum源报错:root@ub12:/etc/yum/repos.d# yum makecachehttp://mirrors.163.com/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - “The requested URL returned error: 404

2022-03-05 10:10:31 675

空空如也

空空如也

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

TA关注的人

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