自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx笔记(安装+使用)

ip_hash 会话粘连, 用户访问的时候请求可能分发到不同服务器,当我们的程序不是无状态的时候(采用了session保存数据),这时候就有一个很大的很问题了,比如把登录信息保存到了session中,那么跳转到另外一台服务器的时候就需要重新登录了,所以很多时候我们需要一个客户只访问一个服务器,那么就需要用iphash了,iphash的每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。进入减压目录>>>命令安装指令:安装到。

2023-08-31 17:52:51 268

原创 Linux防火墙命令

【代码】Linux防火墙命令。

2023-08-30 13:41:44 831

原创 设计模式

单例模式饿汉单例在类加载时就初始化创建单例对象,线程安全,但不管是否使用都创建对象可能会浪费内存。public class HungrySingleton { // 构造器私有化 private HungrySingleton(){} // 静态变量创建对象 private static HungrySingleton instance = new HungrySingleton(); // 静态方法返回静态变量创建的对象 public static HungrySingleton g

2022-06-30 16:34:54 162

原创 阿里云OSS

阿里云OSS服务

2022-06-10 10:34:17 417 1

转载 Drools

规则引擎 Drools

2022-04-14 20:39:36 630

原创 SpringBoot打包

SpringBoot打包Window版Linux版

2022-04-11 13:47:36 530

原创 BigDecimal工具类

import java.math.BigDecimal;/** * 用于高精确处理常用的数学运算 */public class ArithmeticUtils { //默认除法运算精度 private static final int DEF_DIV_SCALE = 10; /** * 提供精确的加法运算 * * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */

2021-08-23 10:32:14 177 1

原创 七牛云上传图片工具类

import com.google.gson.Gson;import com.qiniu.common.QiniuException;import com.qiniu.http.Response;import com.qiniu.storage.BucketManager;import com.qiniu.storage.Configuration;import com.qiniu.storage.Region;import com.qiniu.storage.UploadManager;im

2021-06-07 13:48:18 276

原创 SpringBoot配置

配置文件分类Spring boot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者 application.yml( application.yaml)进行配置YAML全称是 YAML AiR’t Markup Language。YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAM库的不同的骗程语言程序导入,比如:C/C++,Ruby, Python,J

2021-04-07 23:10:13 143

原创 IDEA插件无法下载解决方法

打开插件中心,点击设置->Manage Plugin Repositoties…点击+号 添加 http://plugins.jetbrains.com/plugin/

2021-03-12 19:41:52 694

原创 MyBatis常见面试题

MyBatis什么是 Mybatis?Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性 能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数 据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。通过 xml 文件或注解的方式将

2021-03-11 09:57:41 105

转载 SQL语句优化

SQl语句优化对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。

2021-02-25 20:37:04 114

原创 数据库常见面试题

数据库优化有了解过吗?性能优化有三个重要指标:CPU内存(JVM,内存的读写速度远远大于磁盘的读写)磁盘IO和网络IO数据库设计,牢记数据库设计的要点,面试必备要使用varchar 不要使用char (varchar是可变字符串)varchar长度尽量使用2的n次方便于查询,便于使用字段不能为NULL尽量使用int类型字段设计不宜过多命名规范(表和字段名,要避免使用关键字,最好使用xx_name的形式,不宜过长)字段长度要足够每个表都要有一个自增的ID字段正确建立索引表

2021-01-17 18:22:53 196

原创 Linux

说明路径虚拟机Linux安装https://blog.csdn.net/qq_20286065/article/details/107028691Linux配置静态IPthttps://blog.csdn.net/qq_20286065/article/details/112708176Linux安装JDK、MySql、Tomcathttps://blog.csdn.net/qq_20286065/article/details/112708345Linux常用命...

2021-01-16 15:09:51 111

原创 Cenos7安装JDK、MySql、Tomcat、Redis、Nacos、Nginx

CentOS 7安装JDKmysqltomcat

2021-01-16 15:02:47 486

原创 Linux配置静态IP

配置静态IPNAT模式设置首先设置虚拟机中NAT模式的选项,打开VMware,点击“编辑”下的“虚拟网络编辑器”,设置NAT参数注意:VMware Network Adapter VMnet8保证是启用状态设置静态ip使用su 切换到root账户下修改网卡配置信息,因为普通账户无法修改输入su root后提示输入密码此时输入上文配置的密码即可。(上文配置的密码是root)su root修改网卡配置文件,使用vi命令打开ifcfg-ens33文件vi /etc/sysc

2021-01-16 15:00:27 2193

原创 JAVA 锁常见面试题

Q1:谈一谈 synchronized每个 Java 对象都有一个关联的 monitor,使用 synchronized 时 JVM 会根据使用环境找到对象的 monitor,根据 monitor 的状态进行加解锁的判断。如果成功加锁就成为该 monitor 的唯一持有者,monitor 在被释放前不能再被其他线程获取。同步代码块使用 monitorenter 和 monitorexit 这两个字节码指令获取和释放 monitor。这两个字节码指令都需要一个引用类型的参数指明要锁定和解锁的对象,对于同步

2021-01-07 16:57:05 1364 1

原创 JVM常见面试题

Java虚拟机中内存模型栈内存 : 方法运行时所进去的内存, 还会存储程序的局部变量多线程情况下,一个线程一个栈空间堆内存 : new出来的**对象(对象属性有初始值)、数组(数组元素有初始值)**都在堆内存中,对象的成员变量也存储在堆内存中堆内存中的数据,被多个线程共享方法区 : 字节码文件加载时所进入的内存(程序要运行的代码 .class文件)静态区 : 静态方法、静态变量(有初始值)非静态区 : 非静态方法、静态变量本地方法区 : java调用操作系统相关资源(被nat

2021-01-07 16:54:12 111

原创 集合常见面试题

Map集合的遍历方式Set<K> keySet() : 将Map集合中的key值封装到Set集合中(根据键找值方式遍历)V get(Object key) : 根据key值,获取Map集合中对应的value值(获取键值对对象,通过迭代器遍历)Set<Map.Entry<K,V>> entrySet() : 获取所有键值对对象集合(获取键值对对象,通过增强for循环遍历)Collection<V> values() : 将Map集合中所有的val

2021-01-07 16:07:40 446

原创 JAVA基础常见面试题

封装继承Java 继承(inheritance)是 Java 面向对象的三大重要特性之一(封装-encapsulation, 继承-inheritance, 多态-polymorphsim) Java 继承很好的管理了具有相似特征的类之间的关系(主要集中在成员变量、方法), 使程序可扩展、易修改,并且成为java多态的基础.在java中,一个父类被多个子类继承,但一个子类只能继承一个父类。与接口不同的是,一个类可以实现(implement)多个接口。普通类和抽象类有哪些区别?抽象类不能

2021-01-07 16:06:17 945

原创 JavaWeb常见面试题

转发和重定向的区别1、重定向是浏览器发送请求并收到响应以后再次向一个新地址发请求;转发是服务器收到请求后为了完成响应转到另一个资源。2、重定向中有两次请求对象,不共享数据;转发只产生一次请求对象且在组件间共享数据。3、重定向后地址栏地址改变;而转发则不会。4、重定向的新地址可以是任意地址;转发必须是同一个应用内的某个资源。常见http返回状态码100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已

2021-01-07 16:04:02 207 1

原创 线程常见面试问题

1.线程和进程的区别?答: 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程2.多线程编程的好处?答: (简单回答)多线程的概念就和CPU多核一样,好处就是一心多用的意思,比如一个程序可以同时文件读写

2021-01-07 16:00:49 604

原创 常见设计模式面试问题

设计模式有哪些原则?**开闭原则:**OOP 中最基础的原则,指一个软件实体(类、模块、方法等)应该对扩展开放,对修改关闭。强调用抽象构建框架,用实现扩展细节,提高代码的可复用性和可维护性。**单一职责原则:**一个类、接口或方法只负责一个职责,降低代码复杂度以及变更引起的风险。**依赖倒置原则:**程序应该依赖于抽象类或接口,而不是具体的实现类。**接口隔离原则:**将不同功能定义在不同接口中实现接口隔离,避免了类依赖它不需要的接口,减少了接口之间依赖的冗余性和复杂性。**里氏替换原则:**开闭

2021-01-07 15:51:42 383

原创 常见排序算法

排序有哪些分类?排序可以分为内部排序和外部排序,在内存中进行的称为内部排序,当数据量很大时无法全部拷贝到内存需要使用外存,称为外部排序。内部排序包括比较排序和非比较排序,比较排序包括插入/选择/交换/归并排序,非比较排序包括计数/基数/桶排序。插入排序包括直接插入/希尔排序,选择排序包括直接选择/堆排序,交换排序包括冒泡/快速排序。直接插入排序的原理?稳定,平均/最差时间复杂度 O(n²),元素基本有序时最好时间复杂度 O(n),空间复杂度 O(1)。每一趟将一个待排序记录按其关键字的大小插入到

2021-01-07 15:48:56 121

转载 List去除重复数据的五种方式

使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:删除重复数据保持添加到其中的数据的顺序Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList是包含整数的arraylist,其中一些是重复的数字。例如1,3和5.我们将列表添加到LinkedHashSet,然后将内容返回到列表中。结果arraylist没

2020-12-10 09:40:40 542

原创 Oauth2第三方登录

用户认证1 用户认证分析-面试1用户认证与授权什么是用户身份认证?​ 用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认证表现形式有:用户名密码登录,指纹打卡等方式。什么是用户授权?​ 用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没有权限的资源将无法访问,这个过程叫用户授权。5张表user user_rolerolerole_authauth2单点登录需求 SSO让

2020-12-09 17:46:13 4349

原创 Typora(Markdown)配置图床-图片上传

为什么需要图床Markdown 可以理解为增强版的文本文档,语法简单,支持更多的风格样式,相比 word 更加轻便,文件大小更小,同时可导出为指定格式,目前大多是技术博客论坛已支持 Markdown 格式,基本上可以做到一次编写多处使用。当然 Markdown 也存在缺点,比如图片。Markdown 文档编写时可使用本地图片,但是无法在网络上使用。图床的作用可以理解为将文档中的图片放到网络上,直接引用网络地址,这样可以做到无论在那个平台都可以使用统一的图片地址。搭建图床教程较多此处不做讨论,作者使用

2020-12-03 16:19:53 234

原创 ElastaicSearch-第三天

chapter07商品搜索-elastaicSearch角色:搜索后端组 search-service倒排索引:全文检索:视频1 课程目标根据搜索关键字查询条件筛选规格过滤价格区间搜索分页查询排序查询高亮查询搭建框架视频2 关键字查询-构建搜索条件需求:day01页面原型-》search.html1搜索服务 com.changgou.search.servicepublic interface SearchService { //按照查询条件进行数据查询

2020-12-03 10:30:25 195

转载 数字金额转大写汉字

import java.math.BigDecimal;public class NumberToCN { /** * 汉语中数字大写 */ private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; /** * 汉语中货币单位大写,这样的设计类似于占位符 */ pr

2020-12-02 14:00:38 424

原创 分布式事务框架seata

分布式事务框架seata1 seata简介​ Seata(原名Fescar) 是阿里18年开源的分布式事务的框架。Fescar的开源对分布式事务框架领域影响很大。作为开源大户,Fescar来自阿里的GTS,经历了好几次双十一的考验,一经开源便颇受关注。后来Fescar改名为Seata。 https://github.com/seata/seataFescar虽然是二阶段提交协议的分布式事务,但是其解决了XA的一些缺点:单点问题:虽然目前Fescar(0.4.2)还是单server的,但是Fesc

2020-12-02 10:57:28 445

原创 分布式事务解决方案

分布式事务解决方案1.分布式事务解决方案-面试​ 刚才编写的扣减库存与保存订单是在两个服务中存在的,如果扣减库存后订单保存失败了是不会回滚的,这样就会造成数据不一致的情况,这其实就是我们所说的分布式事务的问题,接下来我们来学习分布式事务的解决方案。1.1 本地事务与分布式事务1.1.1 事务数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务拥有以下四个特性,习惯上被称为ACID特性:原子性(Atomicity):事务

2020-12-01 16:09:51 552

原创 Thymeleaf动态页面静态化

Thymeleaf目标Thymeleaf的介绍Thymeleaf的入门Thymeleaf的语法及标签搜索页面渲染商品详情页静态化功能实现1.Thymeleaf介绍1动态页面:通过执行asp、php、jsp和.net等程序生成客户端网页代码的网页。通常可以通过网站后台管理系统对网站的内容进行更新管理。发布新闻,发布公司产品,交流互动,博客,网上调查等,这都是动态网站的一些功能。也是我们常见的。 常见的扩展名有:.asp、php、jsp、cgi和aspx 等。 注意:动态页面的“动态”是网

2020-12-01 14:58:45 1268

原创 Example.Criteria

example实例解析mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分Example example = new Example(数据库表 对应的实体类.class);Criteria criteria = new Example().createCriteria();方法 说明方法说明example.setOrderByClause(“字段名 ASC”); 添加升序排列条件,DESC为降序exampl

2020-11-18 14:43:04 1279

原创 通用Mapper各种方法及说明

基础接口 Select接口:SelectMapper方法:List select(T record);说明:根据实体中的属性值进行查询,查询条件使用等号接口:SelectByPrimaryKeyMapper方法:T selectByPrimaryKey(Object key);说明:根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号接口:SelectAllMapper方法:List selectAll();说明:查询全部结果,select(null)方法能达到

2020-11-17 14:53:36 2938

原创 POI工具类(word转html)

import fr.opensagres.xdocreport.core.io.IOUtils;import org.apache.poi.hwpf.HWPFDocument;import org.apache.poi.hwpf.converter.WordToHtmlConverter;import org.apache.poi.poifs.filesystem.DirectoryEntry;import org.apache.poi.poifs.filesystem.DocumentEntry;

2020-11-11 15:47:49 657

原创 获取行分割符--UTF8字符串的byte字节数组

public class PlatformOption { /** * 获取行分隔符 * @return */ public static String getLineSeparator() { String lineSeparator = null; if (lineSeparator != null) return lineSeparator; else { l

2020-11-11 15:20:32 234

原创 异常处理

异常处理异常处理器系统的Dao、Service、Controller出现都通过throws Exception向上抛出,最后由SpringMVC前端控制器交由异常处理器进行异常处理,如下图:HandlerExceptionResolver接口(异常处理器)@Componentpublic class ExceptionResolver implements HandlerExceptionResolver { public ModelAndView resolveException(Ht

2020-11-11 10:33:25 76

原创 拦截器

拦截器拦截器概念请求处理过程解析 拦截器( Interceptor)是一种动态拦截方法调用的机制 作用: 1. 在指定的方法调用前后执行预先设定后的的代码 2. 阻止原始方法的执行 核心原理: AOP思想 拦截器链:多个拦截器按照一定的顺序,对原始被调用功能进行增强拦截器VS过滤器 归属不同: Filter属于Servlet技术, Interceptor属于SpringMVC技术 拦截内容不同: Filter对所有访问进行增强, Interceptor仅针对

2020-11-11 10:32:47 327 1

原创 文件上传

文件上传下载前端页面表单中的三个注意事项input的type必须是file类型表单的提交方式必须是post表单的enctype属性的值必须是”multipart/form-data”上传文件过程分析MultipartResolver接口MultipartResolver接口定义了文件上传过程中的相关操作,并对通用性操作进行了封装MultipartResolver接口底层实现类CommonsMultipartResovlerCommonsMultipartResovl

2020-11-11 10:31:07 147

原创 Restful风格配置

Restful风格配置RestRest( REpresentational State Transfer) 一种网络资源的访问风格,定义了网络资源的访问方式传统风格访问路径 http://localhost/user/get?id=1 http://localhost/deleteUser?id=1Rest风格访问路径 http://localhost/user/1Restful是按照Rest风格访问网络资源优点 隐藏资源的访问行为,通过地址无法得知做的是何种操作 书

2020-11-11 10:30:22 254

空空如也

空空如也

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

TA关注的人

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