- 博客(31)
- 收藏
- 关注
原创 StringUtils中getIfBlank与defaultIfBlank区别
getIfBlank只有第一个参数为空才会执行第二个参数。如果是defaultIfBlank方法则是先执行了第二个参数,如果不是空,资源会被浪费掉。
2023-12-18 18:02:49
551
原创 公开代码review总结
6、任何从返回集合中只获取一个元素的代码,必须说明理由(再次强调),一般情况禁止此类方式返回。2、任何从返回集合中只获取一个元素的代码,必须说明理由(再次强调),一般情况禁止此类方式返回。9、if else 使用如果else里代码很长,if的内容要提前返回,不使用else。6、代码过长时考虑封装函数,行数过长、列数过长都算过长需要调整,便于代码阅读。12、尽量使用apache官方工具包,使用时统一,不要混合使用其他三方工具包。
2023-12-12 09:38:40
75
1
原创 if else优化
我们在写代码时,经常不注意就嵌套了好多的if - else语句,少则没事,多则会造成了代码冗余,耦合度低,极大的影响了程序的拓展性,因此设计好代码模式是非常重要的。以下简单的介绍了2种方法,希望对你有所帮助。一个购物系统,当用户消费满1000 元,可以根据用户VIP等级,享受打折优惠。System.out.println(“白金会员 优惠50元,再打7折”);根据用户VIP等级,计算出用户最终的费用。白金会员 优惠50元,再打7折。1、使用工厂 + 策略模式。1、使用工厂 + 策略模式。
2023-12-12 09:27:25
57
原创 企业规范性有写到实体类不能使用date属性,尽量使用localDateTime
、企业规范性有写到实体类不能使用date属性,尽量使用localDateTime
2022-09-08 17:28:55
491
原创 三表不联查 使用业务逻辑进行多表导出功能
企业办公中,由于项目是属于springboot+mybatisplus,通过mybatisplus可以使mapper层更加的方便,简洁,因为mybatisplus封装了很多繁琐的增删改查操作等方法,但是由于业务需要,功能需要导出三表的数据,而三表属于一对多关联,如果使用sql则需要写sql进行连接查询,还需要配置resultMap进行映射,sql使用多的坏处首先认为不安全,其次繁琐,写多了更不好检阅。因为业务需求还需要根据前端人员进行选中id,也就是条件导出,这样既可以条件导出也可以全部导出至重用效果。..
2022-08-31 15:18:56
284
原创 数据加密工具Cipher.getInstance方法
由于将PKCS5Padding写成了PKCSSPadding,疏忽大意导致报错!在企业办公中遇到AES/ECB/PKCS5Padding报错。
2022-08-31 14:50:44
2653
原创 GateWay网关管理
GateWay网关管理GateWayCloud 全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是Spring Cloud GatewayGateway是在Spring 生态系统之上构建的API网关服务,基于Spring 5,SpringBoot 2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤
2022-01-29 16:38:12
1151
原创 微服务架构简介、consul[微服务注册中心]
微服务架构简介、consul[微服务注册中心]什么是微服务?微服务是一种架构风格,它要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合。可以通过http的方式进行互通。要说微服务架构,先得说说过去我们的单体应用架构。单体应用架构所谓单体应用架构(all in one)是指,我们将一个应用的中的所有应用服务都封装在一个应用中。无论是ERP、CRM或是其他什么系统,你都把数据库访问,web访问,等等各个功能放到一个war包内。这样做的好处是,易于开发和测试;也十分方便部署;当需要扩展时,
2021-05-13 11:29:35
331
1
原创 书籍服务RestController
@RestController@RequestMapping("/order")public class OrderController {//static final String PRE_URL=“http://127.0.0.1:8001”;static final String PRE_URL=“http://cloud-provider-goods”;@AutowiredRestTemplate restTemplate;@GetMapping("/downOrder/{id}")
2021-05-13 11:28:59
55
原创 Ribbon负载均衡
Ribbon负载均衡1.为什么需要使用Ribbon经过学习Consul,我们已经实现了服务的注册和服务发现。当启动某个服务的时候,可以通过HTTP的形式将信息注册到注册中心(Consul),并且可以通过Spring Cloud提供的工具获取注册中心的列表,但是服务之间的调用还存在很多问题:在微服务不同模块间进行通信时,如何不去硬编码服务提供者的地址?(Consul)当部署多个相同微服务时,如何实现请求时的负载均衡?(Ribbon)服务调用者需要针对每个微服务去调用时,需要知道每个微服务的地址
2021-05-13 11:27:50
172
原创 strict-origin-when-cross-origin样式404问题
这是由于静态资源跨域问题导致没有找到资源解决方案:只需在控制器上加注解@CrossOrigin就可解决
2021-04-21 10:04:24
14644
1
原创 Spring Boot整合持久层技术
1.本次课程目标使用 SpringBoot+SpringMVC+MyBatis+Thymeleaf 整合实现对数据库中的商品表的CRUD的操作。2.实现步骤2.1 准备商品表DROP DATABASE goodsDB;CREATE DATABASE goodsDB;USE goodsdb;CREATE TABLE goods(id VARCHAR(10) PRIMARY KEY,NAME VARCHAR(40) NOT NULL,price DOUBLE,image VARCHAR(4
2021-04-20 15:55:46
138
原创 Spring Boot 单元测试和热部署
1.Spring Boot 整合Junit单元测试1.1 创建springboot的项目1.2 打开pom.xml,查看坐标 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test junit junit test 1.3 编写业务代码@Servicepublic
2021-04-20 15:53:23
187
原创 HashMap和HashSet的区别
HashMap和HashSet的区别首先让我们来看看什么是HashMap和HashSet,然后再来比较它们之间的分别。什么是HashSetHashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。public boolean add(Object
2021-04-20 15:11:58
108
原创 面向对象都有哪些特性以及你对这些特性的理解?
答:1)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继 承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的 重要手段。2)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象 的本质就3)是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只
2021-04-14 19:26:14
120
原创 反射+注解+xml/DTD
1.java反射机制2.反射相关的类ClassFieldConstructorMethod3.Class对象创建Class.forName(“全限定名”);类名.class对象名.getClass()获取类的基本信息的方法getSimpleName();getPackage();getName();getSuperClass();获取类的属性getFields()getField(“属性名”)getDeclaredFields()getDeclaredField
2021-04-14 19:25:14
51
原创 Java 语言的反射机制
Java 反射是Java语言的一个很重要的特征,它使得Java具有了“动态性”。Java提供了一套机制来动态获取类的信息以及动态调用对象的方法的功能,这套机制就叫——反射反射机制是如今很多流行框架的实现基础,其中包括Struts、Spring、Hibernate等在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的方法Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运
2021-04-14 19:23:36
80
原创 redis集群
1.redis集群1.1. Redis集群是什么?1.多个redis实例整合在一起,形成一个集群,也就是将数据分散到集群的多台机器上。2.给每一个主服务器(master)备份一份从服务器(slave)。其中有一个是主节点(master),可以有多个从节点(slave)。主从之间通过数据同步,存储完全相同的数据。如果主节点发生故障,则把某个从节点改成主节点,访问新的主节点。3. 建议使用奇数个,整体down几率更小。超过等于1/2服务器down掉是整个集群不可用。1.2. 为什么需要使用redis集
2021-04-14 19:08:37
73
原创 Redis高级命令、安全性、主从复制
1.操作redis的key的命令命令 描述del key 删除keyexists key 检查key是否存在expire key 秒 设置key过期时间,单位秒persist key 移除key的过期时间,key将永久保存ttl key 返回key的剩余过期时间,单位秒。永久保存返回-1keys |pattern 查找所有符合条件的key。可以模糊匹配如,?move key db 将当前数据库的key移动到指定的数据库中rename key newkey 修改key的名称type key
2021-04-14 19:02:22
81
原创 redis数据类型命令
1.Redis的数据类型包含String: 字符串Hash: 哈希表List: 列表Set: 集合zset:Sort Set 有序集合Redis命令手册:http://doc.redisfans.com/2.String类型String是redis最基本的类型。一个key对应一个valueString类型是二进制安全的,意味着可以包含任意类型。比如jpg图片或者序列化的对象,简单的字符串,数值等。String类型的值最大只能存储512MB。2.1.结构图2.2.常用命令命令 ./
2021-04-14 19:00:48
59
原创 nosql入门、redis简介、安装
1.NoSql 概述1.1 NoSql 是什么?not only sql 泛指非关系型的数据库1.2 为什么要使用NoSql?随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。如: 高并发读写 新浪微博,朋友圈,统计在线人数
2021-04-14 18:59:06
55
原创 Linux常用命令、安装jdk、tomcat、mysql
Linux常用命令、安装jdk、tomcat、mysql1.Linux 常用命令名称 描述ifconfig 查看网卡信息(查看ip地址)pwd 查看当前目录路径clear 清屏 ctrl+lcd 切换目录绝对路径: 以/开头,从根路径开始相对路径:相对当前的目录结构cd / :切换到根目录 cd ~ : 切换到home 目录cd /usr :切换到根目录下的usr目录cd … :切换到上一级目录cd - :切换到上次访问的目录ls 平铺 查看当前目录下所有的目录和
2021-04-14 18:47:18
70
原创 linux介绍、centos安装、用户管理
Linux介绍、CentOs安装、用户管理1.计算机软件和硬件结构图2.Linux简介1.Linux 内核最初只是由芬兰人林纳斯·托瓦兹在赫尔辛基大学时出于个人爱好而编写。2.Linux 是一套免费使用和自由传播的类似于Unix操作系统,是一个基于POSIX和UNIX的 多用户、支持多线程和多CPU的操作系统。3.Linux能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。4.所谓的linux都是统称,具体版本都叫做发行版。5.linux定位:操作系统。适用于服务器
2021-04-14 18:19:29
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人