自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ecloss

我们都在阴沟里,但仍有人仰望星空。

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

转载 @Transactional注解事务失效的七种原因分析

如果先调用deleteUser(),那么deleteUserA()是不会回滚的,其原因就是@Transactional根本没生成代理,如果直接调用deleteUser2()那么没问题,deleteUserA()会回滚。如下的方式deleteUserA()也不会回滚,因为spring实现事务的原理是通过ThreadLocal把数据库连接绑定到当前线程中,新开启一个线程获取到的连接就不是同一个了。当异常被捕获后,并且没有再抛出,那么deleteUserA是不会回滚的。修改方式,把当前类自己注入一下调用即可。

2023-09-20 10:02:19 237

转载 MyBatis-Plus LambdaQueryWrapper使用说明_mybatisplus lambdaquerywrapper

假如我们有一张banner_item表,现需要通过banner_id查出所有数据(查询List)然后我们可以引入lambda,避免我们在代码中写类似的于banner_id的硬编码。如果只想查询一条记录,例如通过id查询某条记录的详情,使用.one()即可,例如。但是这种写法偏向于炫技,可读性没有上面的代码强,大家可以根据需要自行选择方式。我们可以再次将QueryWrapper.lambda()简化,变成这个样子。MyBatis-Plus还提供了一种链式查询的方式,和上面的代码效果一样。

2023-09-20 09:41:49 775

原创 mybatis-plus异常:dynamic-datasource can not find primary datasource

异常原因是没有设置默认数据源,在类上没有使用@DS指定数据源时,默认会加载master数据源,但是在配置中没有使用master配置,类似下面的用法,maven的配置文件,是否加载你需要的配置信息,如果不是,也可能无法解析出主数据源。使用mybatis-plus多数据源配置时出现异常。在类上增加@DS指定默认数据源。

2023-09-20 09:30:08 3967

原创 SpringBoot启动失败报错,spring.profiles.active:@env@中环境变量@无法识别报错_active: @env@

SpringBoot打包启动时无法识别到配置中的spring.profiles.active=@env@环境变量。

2023-09-20 09:22:27 1264

转载 分布式、集群、微服务、SOA 之间的区别

架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行SOA到微服务架构的演进过程。:业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力,通过服务的组合和编排来实现上层的业务流程。:一个业务分拆多个子业务,部署在不同的服务器上。作用:各服务可独立应用,组合服务也可系统应用。作用:简化维护,降低整体风险,伸缩灵活。:同一个业务,部署在多个服务器上。:不同模块部署在不同服务器上。

2023-09-04 09:13:28 48

原创 Redis的缓存穿透,缓存击穿,缓存雪崩

缓存穿透说简单点就是大量请求的 key 是不合理的,根本不存在于缓存中,也不存在于数据库中。这就导致这些请求直接到了数据库上,根本没有经过缓存这一层,对数据库造成了巨大的压力,可能直接就被这么多请求弄宕机了。eg:某个黑客故意制造一些非法的 key 发起大量请求,导致大量请求落到数据库,结果数据库上也没有查到对应的数据。也就是说这些请求最终都落到了数据库上,对数据库造成了巨大的压力。

2023-08-31 10:20:01 486

原创 数据库设计的六个基本步骤

按照规范设计的方法,考虑数据库及其应用系统开发全过程,可将数据库设计分为以下6个阶段,分别为:1.需求分析,2.概念结构设计,3.逻辑结构设计,4.物理结构设计,5.数据库实施,6.数据库的运行和维护。数据库设计通常分为6个阶段1(1需求分析:分析用户的需求,包括数据、功能和性能需求;2概念结构设计:主要采用E-R模型进行设计,包括画E-R图;3逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;4数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;

2023-08-31 09:31:59 3089

原创 索引失效的七种情况

以上这些情况都可能导致数据库查询时无法有效地使用索引,从而影响查询性能。为了避免索引失效,需要优化查询语句,合理设计索引,尽量避免上述情况的出现。

2023-08-30 13:23:07 6030

原创 Mybatis-plus 主键生成策略

自定义输入策略Mybatis-Plus 内置了如下数据库主键序列(如果内置支持不满足你的需求,可实现 IKeyGenerator 接口来进行扩展):使用方法首先添加@Bean@Bean然后实体类配置主键 Sequence,指定主键策略为 IdType.INPUT 即可,@Data。

2023-08-30 13:15:58 8415

原创 synchronized与ReentrantLock的区别

底层实现:synchronized是jvm层面的锁,Reentrantlock是api层面的锁释放:synchronized不需要手动释放,Reentrantlock需要unlock()方法释放是否可中断:synchronized不可中断;Reentrantlock可使用trylock中断是否为公平锁:synchronized为非公平锁,Reentrantlock可选择锁的对象:synchronized锁的是对象(代码块,静态方法,实例方法);Reentrantlock锁的是线程。

2023-08-30 11:58:04 94

转载 H5唤起APP指南

前一段时间在做电流App H5页面,需求中落地页占比较大,落地页承担的职责就是引流。引流有两种形式,同时也是我们对唤端的定义:引导已下载用户打开APP,引导未下载用户下载APP。引导已下载用户打开APP,从数据上说用户停留在APP中的时间更多了,是在提高用户粘性;从体验上说,APP体验是要比H5好的。引导未下载用户下载APP,可以增加我们的用户量。上面其实分别解释了 什么是唤端 以及 为什么要...

2019-10-30 09:48:00 775

转载 队列---顺序队列存储结构的不足(假溢出)

我们假设一个队列有n个元素,则顺序存储的队列需建立一个大于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标为0的一端即是队头。所谓的入队列操作,其实就是在队尾追加一个元素,不需要移动任何元素,因此时间复杂度为0(1)。可有时想想,为什么出队列时一定要全部移动呢,如果不去限制队列的元素必须存储在数组的前n个单元这一条件,出队的性能就会大大增加。也就是说,队头不需要一定在下标为0的位置...

2019-08-01 14:58:22 2087

转载 Java 实现单例模式的5种方式

1. 什么是单例模式单例模式指的是在应用整个生命周期内只能存在一个实例。单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的重复创建,减少创建实例的系统开销,节省内存。2. 如何实现单例模式1. 饿汉模式所谓饿汉模式就是立即加载,一般情况下再调用getInstancef方法之前就已经产生了实例,也就是在类加载的时候已经产生了。这种模式的缺点很明显,就是占用资源,当单...

2019-07-19 13:47:21 349

原创 《提问的智慧》——如何更高效的提问和解决问题

不知道你们有没有遇到过,在技术群里有人问了一个问题,比如jar包为什么找不到了,或者直接截了一大串图。这样让想解决问题的人,往往感到很头疼,因为他们需要花大量的时间来定位,“他”想解决什么问题?《提问的智慧》可以很好地解决这痛点。接下来给大家分享一下我的一个小小的体会。一,在提问之前1. 尝试在你准备提问的论坛的旧文章中搜索答案。2. 尝试上网搜索以找到答案。3. 尝试阅读手册...

2019-07-19 10:03:09 864

转载 阿里面试回来,想和Java程序员谈一谈(转)

引言其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。其实之前LZ写过一篇文章,但是那篇文章更多的是...

2019-07-18 16:59:16 277

原创 如何在 vue 用 RSA加密,java 后端 RSA解密

第一步:安装crypto-js 库npm install crypto-js --save-dev第二步:在Vue项目中导入全局变量import crypto from "crypto";Vue.prototype.$crypto = crypto;第三步:前端页面加密submitLogin() { // key值 let key = CryptoJ...

2019-07-18 16:22:41 2636 4

转载 IdGenerator 唯一Id生成器

public class IdGenerator { private final static long beginTs = 1483200000000L; private long lastTs = 0L; private long processId; private int processIdBits = 10; private long s...

2019-07-16 13:54:58 5763

转载 mysql中的Varchar(255)可以放多少个汉字

在字符集为UTF-8的情况下:MySQL | ver < 4.1: VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-83字节编码长度),则VARCHAR(255)共可存放约85个汉字;MySQL | ver >= 4.1:VARCHAR以字符为单位存储,假设输入仍然为常用汉字,则VARCHAR(255)可以存放255个汉字。...

2019-07-03 17:44:18 21373 1

转载 Spring-Boot 热部署加载

Spring DevTools 介绍Spring Boot包括一组额外的工具,可以使应用程序开发体验更加愉快。spring-boot-devtools模块可以包含在任何项目中,它可以节省大量的时间。 想要使用devtools支持,只需将模块依赖关系添加到你的构建中:Maven:dependencies> <dependency> <g...

2019-06-24 09:43:19 249

转载 MySQL中utf8 和 utf8mb4的区别

一,介绍 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。二,内容描述 那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8m...

2019-06-19 22:42:38 185

原创 大于/小于/等于 的缩写

本人最近在使用Mybatis-Plus 经常写SQL 的时候会用到大于,小于,但是老是忘词,特此记下来。lt (less than) 小于le (less than or equal to) 小于等于eq (equal to) 等于ne (not equal to) 不等于ge (greater th...

2019-06-10 14:17:59 14564 1

原创 @PathVariable注解的使用

带着占位符的URL是Spring 3.0 新增的功能,该功能是SpringMVC向ResultFul目标挺进发展过程中具有里程碑的意义。通过@PathVariable可以将URL中占位符参数绑定到控制器中处理方法的入参中:URL的{xxx}占位符可以通过@PathVariable("xxx")绑定到操作方法的入参中。@RequestMapping("/get/{id}")public ...

2019-05-13 17:37:21 1146

转载 Shiro 基础教程

原文地址:Shiro 基础教程博客地址:http://www.extlight.com一、前言Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。二、介绍2.1 功能特点Shiro 包含 10 个内容,如下图:1) Authentication:身份认证/登录,验证...

2019-05-08 23:35:22 230

转载 Apache Shiro 快速入门教程,shiro 基础教程

第一部分 什么是Apache Shiro1、什么是 apache shiro :Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理如同 Spring security 一样都是是一个权限安全框架,但是与Spring Security相比,在于他使用了和比较简洁易懂的认证和授权方式。2、Apache Shiro 的三大核心组...

2019-05-08 23:32:46 204

原创 用 //代替 http:// 有什么好处?(自适应https)

//缺省协议的讲解,用 //代替 http:// 有什么好处?&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//缺省协议的使用,代表资源访问的协议和当前页面保持一致,如果当前页面是http ,采用http协议访问,如果是https,则使用 https 协议访问。这样用就不管是http还是升级到https都不用改动代码,现在很多CDN资源都是这样引用。一般使用在内链中,外链的协议头具有不确定...

2019-01-21 14:11:59 716

原创 java中判断字符串是否全为数字

java中判断字符串是否全为数字&nbsp;&nbsp;&nbsp;&nbsp;如何判断传过来的字符串全为数字呢?我在网上搜了很多资料,但是有些资料提供的方法有些是有bug的,所以我把自己试验过的一些正确的方法写出来,供大家参考。1. 用Java自带的方法Java中有一个Character.isDig(char ch) public class CheckStrIsNum { ...

2019-01-10 20:56:20 26502 3

原创 BigDecimal 与 int,long,double之间的互转

BigDecimal 与 int,long,double之间的互转转换关系如下:int 转换成 BigDecimal/** * int 转 Bigdecimal */@Testpublic void demo04() { int a = 101; BigDecimal big = new BigDecimal(a); System.out.prin...

2019-01-10 11:26:30 2718

原创 Java中取出某一属性的方法当做单独的集合

Java中抽取对象取出一个属性当做单独的集合可以遍历循环存储,但是我用的是Java8的函数表达式来使用代码如下: public void HelloWorld { @Test public void demo01() { User man = new User(null, &amp;quot;XiaoBai&amp;quot;, 18); ...

2019-01-09 16:47:21 813

原创 Java如何判断两个集合的元素是否完全相等

Java如何判断两个集合的元素是否完全相等&nbsp;&nbsp;&nbsp;&nbsp;博主最近在工作的时候遇到了这样的一个需求,前端的页面提交一个表单数据,传到后台,我需要做判断这个表单和已有的表单数据是否有完全相同的,如果有相同的数据,那么就返回一个false,这一个表单不能被保存,如果不同,就可以保存到数据库中。一,实现1. 最简单粗暴的方法,遍历循环package list.d...

2019-01-09 15:11:13 50643 14

原创 Markdown语法汇总

Markdown语法汇总文章目录Markdown语法汇总前言一,标题1. 一级标题2. 二级标题3. 三级标题4. 四级标题5. 五级标题6. 六级标题分割线二,列表1. 无序列表2. 有序列表三, 字体1. 粗体2. 斜体3. 下划线4. 删除线四,引用1. 引用2. 插入链接3. 插入图片4. 插入表格5. 内嵌代码6. 代码块7. 公式前言&amp;nbsp;&amp;nbsp;本人是一个热衷于写笔...

2019-01-04 17:19:01 219

原创 String类型如何转换Integer

String类型,转换Integer有两种方法:方法1:Integer.valueOf(String s); @Test public void demo01() throws NumberFormatException { String str = "123"; Integer num = Integer.valueOf(str); ...

2018-12-24 23:28:01 2339

原创 Java时间和时间戳格式的互转

Java时间戳和时间格式的互转1. 时间戳转换成时间 /** * 时间戳转换成时间 */ @Test public void demo01() { /** 时间戳 */ String s = "1545098699000"; long it = new Long(s); Date...

2018-12-21 10:48:34 261

原创 如何让你的idea自动生成序列号

1. 在写项目的时候,为了防止创建类的时候被反序列化,往往需要将类进行序列化打开idea的:file --&gt; setting --&gt; Editor --&gt; inspections --&gt; 搜索serializable --&gt; 在class withOut "serialVersionUID" 勾上 测试:1. 创建一个UserBo类2. 继...

2018-12-19 11:04:53 11565 7

原创 修改本地maven仓库的地址

我们在安装成功maven后,系统会默认把仓库地址设置为.m2 我需要修改maven仓库的地址,修改到此处那么只需要在maven的conf文件夹的setting.xml 文件中,配置&lt;localRepository&gt;D:\repository&lt;/localRepository&gt;...

2018-12-19 10:49:33 297

原创 list集合 和 array数组的互转

1. 集合转数组使用list中的 toArray() 方法: public void demo04() { List&lt;Integer&gt; list = new ArrayList&lt;&gt;(); for (Integer i = 1; i &lt;= 5; i++) { list.add(i); ...

2018-12-13 17:46:20 443

原创 BeanCreationException 异常处理

今天撸代码的时候发现了一个bug,报的错误是 BeanCaeationException 异常[org.springframework.web.context.support.XmlWebApplicationContext:549] - Exception encountered during context initialization - cancelling refresh atte...

2018-12-13 17:18:55 5692 1

原创 一个简单的AJAX请求

最近在学习AJAX,写一个简单的AJAX的demo出来测试一下&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;script type="text/javascr

2018-12-11 17:19:30 1486 1

转载 【程序人生】那些工作之外的技术挣钱方式

转载地址:https://blog.csdn.net/qq_36538012/article/details/82457062作为一名程序员,在上班之余,我们有大把的时间,不能浪费,这些时间其实都是可以用来挖掘自己潜在的创造力,今天要讨论的话题就是,程序员如何利用空余时间挣零花钱?比如说周末可以赚外快啊,在网上接点活干,那么,都有哪些网站?一:程序员客栈https://www.proginn.c...

2018-12-11 16:52:08 544

原创 创建自定义能启动多个软件的脚本

  自从工作之后,每天常用到的软件有很多了,每天到公司的第一件事情就是花5分钟把要用到的软件一个一个启动(无奈),详细这么做挺麻烦的,于是自己写了一个能一键启动多个软件的脚本(写完还是很有成就感的)~~ 现在就教教大家怎么写吧=。=1. 创建一个bat,空白脚本要注意:后缀名是 .bat 哦 2. 写bat脚本  现在我经常使用idea这个软件,因此我必须把它一键启动...

2018-12-11 16:28:06 727 1

原创 IDEA 重新导入依赖maven 命令 reimport

Intellj 的自动载入maven功能有时候很好用,但是有时候会碰到很多问题,导致pom文件修改却没有触发自动重写载入。此时需要手动强制更新依赖:1. 手动删除Project Setting 里面的libraries 包2. 在Maven Project点击clean功能,删除之前编译过得文件3. 项目右键 --》 maven --》 Reimport...

2018-12-10 14:29:59 91555 9

空空如也

空空如也

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

TA关注的人

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