自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 shell操作mysql数据库 基本命令

shell操作mysql数据库基本命令、基本操作

2022-07-01 16:17:46 4570 1

原创 idea借助mybatis-generator生成后端代码基本增删改查

idea借助mybatis-generator生成后端代码基本增删改查

2022-03-18 09:56:56 1636

原创 idea借助mybatis-plus插件实现框架自动生成

idea借助mybatis-plus插件实现框架自动生成

2022-03-18 09:51:14 1650

原创 poi创建生成excel样式汇总

这里需要注意poi的版本问题版本不同,代码不同,不过大同小异XSSFWorkbook和HSSFWorkbook 的样式上也有一定的区别先上两个常用的POI的pom依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.10

2022-01-27 16:30:41 795 1

原创 poi生成Workbook转成pdf(java实现excel转pdf)

这里excel转pdf实现的思想是:先用poi生成workbook 然后转为pdf格式文件

2022-01-27 15:57:59 10848 3

原创 poi导出(生成)excel基础代码

public XSSFWorkbook generateWarterAlarmMsgExcel(List<WarterAlarmVO> warterAlarmVOS, String date, String timeType) throws ParseException { if(warterAlarmVOS != null && warterAlarmVOS.size() != 0){ // 创建一个webbook,对应一个Ex...

2022-01-27 15:42:45 316

原创 poi读取excel基础代码

//获取导入的文件中的数据public List<BatchExportDeviceVo> getImportData(MultipartFile file) { List<BatchExportDeviceVo> batchExportDeviceVos = new ArrayList<>(); try { // 获取excel文件中的数据 Workbook wb = WorkbookFactory.create(fil

2022-01-27 15:35:19 297

原创 微信扫一扫获取签名(给前端)

@GetMapping("/getSignature") @ApiOperation(value = "获取签名") public ServerResponse getSignature(String url) throws IOException { String signature = ""; //获取noncestr String noncestr = UUID.randomUUID().toString(); ...

2021-11-19 09:06:04 738

原创 java随机生成汉字

生成多个汉字的话加个循环执行以下代码即可 //随机生成汉字 private static char getRandomChar() { String str = ""; int hightPos; // int lowPos; Random random = new Random(); hightPos = (176 + Math.abs(random.nextInt(39))); low.

2021-11-19 08:59:51 3151

原创 微信授权回调获取用户信息

@GetMapping("/userInfo") @ApiOperation(value = "微信授权回调", httpMethod = "GET", produces = "application/json;charset=UTF-8") public ServerResponse weixinCallBack(String code) throws IOException { if (StrUtil.isBlank(code)) { re...

2021-11-19 08:56:33 908

原创 Ribbon基本简介

Ribbon是什么?Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将 Netflix 的中间层服务连接在一起。Ribbon 的客户端组件提供一系列完整的配置项,如:连接超时、重试等。简单的说,就是在配置文件中列出 LoadBalancer (简称LB:负载均衡) 后面所有的及其,Ribbon 会自动的帮助你基于某种规则 (如简单轮询,随机连接等

2021-09-29 18:26:55 353

原创 Eureka和Zookeeper比较 CAP原则

CAP是什么?C (Consistency) 强一致性A (Availability) 可用性P (Partition tolerance) 分区容错性CAP原则:一个分布式系统不可能同时满足C (一致性) 、A (可用性) 、P (容错性),由于分区容错性P再分布式系统中是必须要保证的,因此我们只能再A和C之间进行权衡。只能同时满足两个Zookeeper 保证的是 CP —> 满足一致性,分区容错的系统,通常性能不是特别高Eureka 保证的是 AP —> 满足可用性,分区容错的系

2021-09-29 18:25:01 258

原创 Eureka集群环境配置

原理:放置一个服务崩了之后,所有服务都没了所以要多个服务器集群关联起来,客户端要注册到每一个服务器创建三个 eureka 的module启动类都加 @EnableEurekaServerpom 都导Eureka3.配置文件例子:这里的 域名需要不一致,都写localhost 会冲突在每一个服务里,都要配置另外几个服务的地址,这样才能关联起来server: port: 7002#Eureka配置eureka: instance: # Eureka服务端的实例名字

2021-09-29 18:24:33 253

原创 完善Eureka监控信息

配置这个链接的信息 (在客户端 8001)1、导依赖<!--Eureka actuator监控信息完善--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>2、application 配置#inf.

2021-09-29 18:23:29 178

原创 Eureka自我保护机制

把服务端(8001)停掉,过一会儿,Eureka监控页面会报红EureKa自我保护机制:好死不如赖活着一句话总结就是:某时刻某一个微服务不可用,eureka不会立即清理,依旧会对该微服务的信息进行保存!默认情况下,当eureka server在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒),但是,如果短时间内丢失大量的实例心跳,便会触发eureka server的自我保护机制,比如在开发测试时,需要频繁地重启微服务实例,但是我们很少会把eureka server一起重启(因

2021-09-29 18:21:13 167

原创 服务注册中心 Eureka简介及搭建

Eureka 包含两个组件:Eureka Server 和 Eureka Client.Eureka Server 提供服务注册,各个节点启动后,回在EurekaServer中进行注册,这样Eureka Server中的服务注册表中将会储存所有课用服务节点的信息,服务节点的信息可以在界面中直观的看到.服务端 会向客户端 发送心跳Eureka Client 是一个Java客户端,用于简化EurekaServer的交互,客户端同时也具备一个内置的,使用轮询负载算法的负载均衡器。在应用启动后,将会向Eure

2021-09-29 18:19:25 185

原创 java链式写法,@Accessors注解

@Data@NoArgsConstructor@Accessors(chain = true) //链式写法public class Dept implements Serializable { private String uuid; private String dname; private String db_source; public Dept(String dname) { this.dname = dname; }

2021-09-29 18:15:35 1201

原创 SpringCloud基础简介

总体思路:1、导入依赖2、编写配置文件3、开启这个功能 @EableXXX4、配置类(如果需要)什么是微服务?微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去解耦,每一个微服务提供单个业务功能的服务,一个服务做一件事情,从技术角度看就是一种小而独立的处理过程,类似进程的概念,能够自行单独启动或销毁,拥有自己独立的数据库。微服务优缺点优点单一职责原则;开发简单,开发效率高,一个服务可能就是专一的只干一件事;微服务能够被小团队单独开发,这个团队只需2-5个开发人

2021-09-29 18:13:35 189

原创 java日期问题 (Date返回前端是时间戳)

方法一:在实体加注解@Data public class Project { String uuid; // String projectName; //项目名称_like @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") Date openDay; //立项日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") Date

2021-09-28 11:22:05 3160

原创 java异常try、catch、finally执行顺序

一、try中带有return情景一:(参数是基本类型时)private int testReturn1() { 2 int i = 1; 3 try { 4 i++; 5 System.out.println("try:" + i); 6 return i; 7 } catch (Exception e) { 8 i++; 9

2021-09-28 11:18:15 247

原创 java后端开启事务使用Demo

//删除设备 @Transactional(rollbackFor = Exception.class) public int deleteDevice(String uuid) throws Exception { //删除设备信息 int i = deviceExtMapper.delete(uuid); //删除对应的管道信息 int j = devicePipelineExtMapper.deleteDevice...

2021-09-28 10:04:28 292

原创 Springboot项目打jar,并转换为exe可执行文件

参考:参考博客springboot项目打包成exe第一步:maven -> install第二步:install完后,会发现 target 目录下产生了一个jar(这个jar包就是把你现在的项目编译好,依赖都封装到这个jar包了)可以用命令行 java -jar jar包名 来执行第三步:把jar包拖到桌面方便找,打开 exe4jwelcom 点 nextnext选择你的jre环境然后一直next 就可以..

2021-09-09 11:37:11 382

原创 遍历一个实例对象中的属性及属性值

//product是实例对象Class cls = product.getClass();//获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。Field[] fields = cls.getDeclaredFields();for(int i=0; i<fields.length; i++){ Field f = fields[i]; //setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的

2021-09-07 16:10:43 295

原创 实体类之间属性复制问题(beanUtils、PropertyUtils工具类)

第一步:导依赖<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version></dependency>第二步://把product 中的 属性 复制到 selectProduct中PropertyUtils.

2021-09-07 16:08:15 795

转载 java参数判空快捷

https://www.cnblogs.com/tanjiyuan/p/11269678.html

2021-09-07 16:04:49 202

原创 elementui表格数据数组中有数组的遍历显示

<el-table-column label="特点" width= "290" prop="characteristicTag" > <template slot-scope="tags"> <span v-for="tag in tags.row.characteristicTag "><el-tag>{{tag}}</el-tag></span> <

2021-08-26 10:53:21 2362

原创 springboot+vue(Element Ui)图片删除(连同删除数据库中的数据)

前端 //删除图片 deleteProductImage(id,realUrl){ this.$confirm('是否要删除该产品图片?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { deleteProductImage({ id: id ,realUrl :

2021-08-25 10:54:45 960

原创 springboot+Vue (element ui)图片上传(连同数据库中的数据)

//后端代码 //上传图片 @RequestMapping("/upload") @ResponseBody public Map<String, Object> uploadToUser(@RequestParam("file") MultipartFile file) { Map<String, Object> map = new HashMap<>(); FileOutputStream out ...

2021-08-25 10:13:04 1544

原创 hashMap扩容机制1.7和1.8汇总及对比

不管是JDK1.7或者JDK1.8 当put方法执行的时候,如果table为空,则执行resize();方法扩容。默认长度为16;JDK1.7扩容条件:发生扩容的条件必须同时满足两点当前存储的数量大于等于阈值发生hash碰撞特点:先扩容,再添加(头插法)缺点:头插法会使链表发生反转,多线程环境下会产生环扩容之后对table的调整:table容量变为2倍,元素下标需要重新计算重新获取key的hashcode 再对hashcode进行扰动(具体解释可以翻我文章)newinex = has

2021-07-01 17:45:40 1270 4

原创 hashmap构造函数及初始化

hashmap构造函数hashmap的构造函数有四种(jdk1.8):先上源码,然后再一一解释// 方式一:public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " +

2021-07-01 17:05:23 938

原创 websocket详解

1.websocket简单介绍WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。重点

2021-07-01 15:23:14 345

原创 hashmap取key下标详解+相关面试问题

hashmap中获取key数组下标index的步骤大致为一下散布:获取到key的hashcode (32为的int值)通过扰动函数(哈希函数)得到 newhash下标 index = newhash & ( table.length - 1)下面展开对这三步进行分析:第一步:key.hashCode()函数调用的是key键值类型自带的哈希函数,返回int型散列值。int值范围为**-2147483648~2147483647**第一步就是拿到 hashcode 很好理解,重点

2021-06-25 21:27:13 1953

原创 数据库封锁协议

数据库封锁协议举例:事务A对数据D加了X锁,其他事务都不能再对D加任何锁,A可以对数据D读取或者修改,但其他事务最基本的select 语句还是可以读取数据D,因为最基本的select语句并不用申请任何锁!一级封锁协议:事务T要修改数据A时必须加X锁,直到T结束才释放锁可以防止丢失修改的问题,因为有两个事务同时修改时,事务的修改就不会被覆盖举例:事务A对数据D加X锁,修改数据D之后,这个时候事务B不能对D加任何锁,但是可以select,B读到数据D=2,此时,A出错,事务回滚,B此时就读到了脏数据。

2021-04-05 20:12:38 525

原创 MySQL面试题汇总

MySQL面试知识点汇总1. 封锁协议举例:事务A对数据D加了X锁,其他事务都不能再对D加任何锁,A可以对数据D读取或者修改,但其他事务最基本的select 语句还是可以读取数据D,因为最基本的select语句并不用申请任何锁!一级封锁协议:事务T要修改数据A时必须加X锁,直到T结束才释放锁可以防止丢失修改的问题,因为有两个事务同时修改时,事务的修改就不会被覆盖举例:事务A对数据D加X锁,修改数据D之后,这个时候事务B不能对D加任何锁,但是可以select,B读到数据D=2,此时,A出错,事务回

2021-04-05 20:04:10 80

空空如也

空空如也

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

TA关注的人

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