自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猪猪神功屁

记录点滴

  • 博客(133)
  • 收藏
  • 关注

原创 JAVA常见名词解释

IDE: Integrated Development Environment 集成开发环境 (比如Java的Eclipse和Idea)EJB: Enterprise JavaBean 在J2EE里,Enterprise Java Beans(EJB)称为Java企业Bean,是Java的核心代码,分别是会话 Bean(Session Bean...

2018-04-08 17:50:17 907 1

原创 Docker笔记

docker run -itd --name=container_name img_name # 使用img_name以交互模式在后台运行分配了伪终端的名为container_name的镜像。docker exec -it container_name/container_id /bin/bash # 通过容器名字或ID进入容器。Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器。docker save基于镜像,export基于容器;

2023-09-13 23:18:05 690

转载 springboot配置jasypt 加密

jasypt加密

2023-03-23 11:33:02 588

原创 面试八股文

面试

2022-10-31 23:02:51 2832

转载 Springboot druid数据库密码加密配置步骤

Springboot druid数据库密码加密配置步骤

2022-08-19 14:17:18 2965

原创 Spring Security跨站请求伪造(CSRF)

spring security 中 csrf

2022-08-03 17:07:54 1984

原创 springboot集成log4j2

springboot集成log4j2

2022-07-21 16:49:49 375

原创 Springboot自定义注解简单应用

自定义注解+AOP完成对方法增强

2022-07-13 16:17:20 446

原创 Java文件上传下载、导入导出excel

文件上传 @PostMapping("/upload") public String uploadFile(MultipartFile file) { try { // 上传文件路径 String filePath = "E:\\mym/import"; // 上传并返回新文件名称 String uuid = UUID.randomUUID().toString().repl

2022-04-13 16:42:06 2150 4

原创 ShardingSphere水平表实现

pom.xml <!-- Spring data Jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- shardingsphere-jdbc --&

2021-10-30 13:47:40 318

原创 mybatis-plus使用及代码生成

代码生成pom文件: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>mys

2021-10-24 11:32:25 212

原创 SpringBoot多环境配置

建立适配各个环境的配置文件application-dev.yml:开发环境 application-test.yml:测试环境 application-pre.yml:准生产环境 application-prod.yml:生产环境启动的时候可以通过配置spring.profiles.active来选择启动的环境java -jar abc.jar --spring.profiles.active=prd如果需要在打包的时候动态指定环境,在pom中配置<!-- 配置环境 .

2021-10-12 16:34:19 442

原创 RocketMQ源码部署

下载源码:rocketmq-all-4.9.1-source-release.zip启动namesrv和broker注意都需要配置环境变量ROCKETMQ_HOME=${项目目录},broker还需要添加启动参数-n 127.0.0.1:9876模拟消息生产和消费启动example模块下:生产者:org.apache.rocketmq.example.quickstart.Producer消费者:org.apache.rocketmq.example.quickstart..

2021-10-12 15:32:02 189

原创 Linux vi/vim笔记

Vim是从vi发展出来的一个文本编辑器。vi/vim有三种模式:命令模式(Command mode)、输入模式(Insert mode)和底线命令模式(Last line mode)。命令模式启动vi/vim,便会进入命令模式。常用命令:i/I切换到输入模式,i为光标所在处,I行首。 a/A a为光标所在处下一个字符,A行尾。 o/O o为向下插入一行,O向上。 x删除当前光标所在处的字符。 :切换到底线命令模式,以在最底一行输入命令。光标移动光标向上移动3行...

2021-09-27 16:31:44 136

原创 Shell脚本

shell是一种用C语言编写的程序,它是用户使用Linux的桥梁。shell脚本是一种使用shell编写的脚本程序。linux系统中最常用的shell脚本解释器是Bash(Bourne Again Shell, /bin/bash)。一个简单示例:test.sh#!/bin/bashecho "Hello World!"#!声明脚本使用什么解释器解析,没有则使用默认shell。执行./test.sh # 会先使用指定解析器解析, 需要赋予脚本可执行权限bash tes

2021-09-26 18:29:10 330

原创 WebSocket简单调用

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocked API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。背景:很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的事件间隔,由浏览器发出HTTP请求,然后由服务器返回最新的数据给客户端浏览器。这种传统的模式有很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请.

2021-07-05 16:31:29 3240

原创 git bash操作

# 设置用户名 邮箱git config --global user.name "Your Name"git config --global user.email "email@example.con"# 查看git config user.namegit config user.email建立ssh连接# 生成密钥 ,进入github添加生成的密钥(id_rsa.pub内容)$ ssh-keygen -t rsa -C ‘邮箱’ //.ssh目录下(C盘用户文件夹下)得到了两个文件:i

2021-06-24 11:37:21 147

原创 Spring Data JPA

JPA(Java Persistence API)Java持久化API。Spring Data JPA是spring提供的一套简化JPA开发的框架,底层还是使用了hibernate的JPA技术实现。持久化工具都有一个对象来操作数据库,原生的Hibernate中叫做Session,JPA中叫做EntityManager,MyBatis中叫做SqlSession。<dependencies> <dependency> <groupId>org.springfr

2021-06-23 17:27:05 207

原创 leetcode_3_无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = “abcabcbb”输出: 3 public static int lengthOfLongestSubstring(String s) { int max = 0; Set<Character> set = new HashSet<>(); int len = s.length(); int rk = 0; fo

2021-06-21 02:14:20 110

原创 leetcode_day2_两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.public class AddTwoNums { public static void main(String[] args) { ListNode l1 = new ListNode(

2021-06-20 23:13:00 123

原创 leetcode_day1_两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。我的解法:暴力枚举时间复杂度:O(N^2)空间复杂度:O(1)public int[] towSum(int[] nums, int target) { int len = nums.length; for (int i = 0; i &lt

2021-06-17 15:22:11 97

原创 分布式事务

CAP理论CAP理论又叫布鲁尔定理,是Consistency, Availability, Partition Tolerance三个单词的缩写。CAP理论是指在分布式系统中,一致性、可用性、分区容错性三个要素不能同时满足。当前一般是通过最终一致性来提高系统的性能,通过使用多节点之间的数据异步复制技术来实现集群化的数据一致性。传统SQL数据库事务是满足ACID的强事务机制,NoSQL系统注重性能和扩展性,而非事务机制,仅提供对行级别的原子性保证,也就是说同时对同一个key下的数据进行的两个操作,在

2021-05-19 17:32:01 117

原创 Mybatis常用标签使用

select<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="UserBean"> select * from User where id = #{id} <where> <if test="name != null && name != ''"> and name = #{name} .

2021-04-29 12:57:58 266

原创 synchronized关键字

多线程编程中出现线程安全问题往往是因为多个线程访问某一共享、可变数据(一个变量、一个对象或是一个文件等)时产生。共享意味着该资源可以被多个线程同时访问;可变意味着该资源可以在其生命周期内被修改。并发模式在解决线程安全采用的方案都是序列化访问临界资源,即保证同一时刻,只能有一个线程访问临界资源,也称作同步互斥访问。java提供synchronized和Lock锁两种方式来实现同步互斥访问。synchronized关键字修饰静态方法时,锁住的是该类的class对象;修饰非静态方法时,锁住的是当前实.

2021-04-27 16:22:43 120

转载 缓存击穿、雪崩、穿透

随着互联网的越来越普及,用户越来越多,系统性能瓶颈成了越来越热门的话题。要解决性能问题的技术手段有很多,比如:缓存、CDN加速、页面静态化、集群、分布式、异步等。缓存通常被作为首先技术方案,简单而且提升效果明显,它能够将速度提升100倍。那么问题来了,缓存为啥会怎么快呢?因为传统的数据库操作是基于磁盘的,而缓存是基于内存的,内存操作和磁盘操作的速度根本不是一个数量级的。目前市面上主流的缓存有:redis和memcache,这两个都是基于内存的缓存技术,二者的区别我在这里暂时不讲。使用缓存的伪代码..

2021-04-23 10:56:47 137

转载 消除if...else

public interface IWind { void wind();}@Servicepublic class EastWind implements IWind { @Override public void wind() { System.out.println("===东风吹啊吹==="); }}@Servicepublic class WestWind implements IWind { @Override .

2021-04-22 10:47:58 138

转载 Mysql8.0.23安装

mysql安装原文地址官网下载社区版本:https://dev.mysql.com/downloads/mysql/ 解压后创建my.ini文件(与bin目录同级) [mysqld]port=3306basedir=D:\java\mysql-8.0.23-winx64datadir=D:\java\mysql-8.0.23-winx64\Datamax_connections=200max_connect_errors=10character-set-server=utf8mb4d

2021-04-20 12:33:55 119

原创 常见排序算法

冒泡排序 首先从第一个到最后一个逐一比较,如果arr[j] > arr[j + 1],就交换。结束一趟最后的元素是最大的,为一趟冒泡排序。针对所有的元素重复以上操作,每趟得到的最大值放在最后,下次操作不需要考虑此最大值。public void bubbleSort(int[] arr) { for (int i = 1; i < arr.length; i++) { boolean flag = false; ...

2021-04-08 18:38:34 109

原创 Oracle&&Mysql存储过程简单使用

存储过程Procedure是一组为了完成特定功能的sql语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。存储过程可以包含逻辑控制语句和数据库基本结构包含三部分:过程声明、执行过程部分和异常处理部分。创建:create or replace procedure hello_procedureasbegin dbms_output.put_line('Hello Procedure!');end;执行:exec hello_procedure;

2021-04-07 19:41:20 436

原创 spring循环依赖

循环依赖可以是自己依赖自己,两对象相互依赖,多个对象之间的间接依赖三种情况。循环依赖主要场景:单例setter注入、多例setter注入、构造器注入。spring只能解决单例的setter注入。spring内部有三级缓存:// 一级缓存,用于保存实例化、注入和初始化完成的bean实例。该缓存中的bean可以直接使用 private final Map<String, Object> singletonObjects = new ConcurrentHashMap(256);//

2021-03-26 17:10:42 136

原创 springboot单元测试

当单元测试代码不需要Springboot功能,可以直接编写Junit测试代码public class JunitTest { @Test public void test() { System.out.println("Junit Test"); }}spring框架提供测试模块spring-test,用于应用程序的集成测试,在springboot中,通过spring-boot-starter-test启动器来快速开启和使用。.........

2021-03-19 17:16:41 13228

原创 Oracle批量插入数据

declarei number;begin for i in 1..100 loop insert into tab (id,date) values (i, to_char(sysdate, 'yyyyMMdd HH24miss'); end loop;end;to_char(date/num, '格式') 把日期或数字转换为字符串to_date(char, '格式‘)把字符串转为日期decare --声明 B_ID number(10.

2021-03-17 17:13:53 430

原创 正则表达式

java中正则(Regular Expression)使用String类中matches方法 public boolean matches(String regex) { return Pattern.matches(regex, this); }Pattern中matches方法 public static boolean matches(String regex, CharSequence input) { Pattern p =.

2021-03-03 12:19:55 1720 3

原创 Druid数据库连接

Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser常用配置sring.datasource.name=druidDataSourcespring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.druid.driver-cla...

2021-03-02 15:54:23 1120

原创 nvl函数

oracle中空值判断函数nvl(exp, 1) 如果exp为空,返回1. 否则返回exp本来的值nvl2(exp, 1, 2) 如果exp为空,返回2,否则返回1MySql中类似的函数ifnull(exp, 1) 同nvl

2021-02-25 14:32:20 4188

原创 mybatis关联查询

相关bugjava.lang.IllegalArgumentException: At least one base package must be specified启动类添加注解@MapperScan("...")org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zhu.mapper.SysUserMapper.selectByPrimaryKeySysUserM...

2021-02-23 18:21:48 180

原创 Eureka注册中心搭建&简单调用

Eureka注册中心搭建Eureka ServerEureka ClientApplication Service 服务提供方,注册到Eureka Server中的服务Application Client 服务消费方,通过Eureka Server发现服务,并消费

2021-01-26 15:54:57 405

原创 2021-01-14

学习笔记-设计模式观察者模式 (Oberver Pattern : Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically)定义对象之间的一种一对多的依赖关系,使得每当一个对象状态发生变化时其相关依赖对象皆可得到通知并被自动更新。观察者模式别名有发布-订阅(Pu

2021-01-22 14:45:14 77

原创 2021-01-11

学习笔记计算机组成CPU (Central Processing Unit) 中央处理器 存储器 输入输出设备计算机工作原理:首先在控制器输入命令控制下,通过输入设备输入指令,保存在存储器中。开始运算时,从内存中读取指令,通过控制器对指令进行译码,并根据指令的操作向存储器和运算器发出存储、取数和运算命令,把结果存放存储器内。最后在控制器控制下,通过输出设备输出。CPUCPU由控制单元(Control Unit)、运算单元(Arithmetic/Logic Unit)和存储单元(Me

2021-01-12 01:51:57 341

原创 mysql常用操作 & 数据类型 & 函数

字符函数length("abc"); //3 返回字节长度 instr("abc","bc"); //2 返回子串第一次出现的索引,没有返回0 substr/substring("abc",2); //bc 截取从指定索引处后面的所有字符 sbustr/substring("abcde",2,3); //bcd 截取从指定索引指定字符长度的字符 lowe...

2019-04-07 10:45:58 284

空空如也

空空如也

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

TA关注的人

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