
java
文章平均质量分 78
Calvin_it
这个作者很懒,什么都没留下…
展开
-
Spring 事务方法与非事务方法相互调用 @Transactional 注解失效分析
写这篇文章的初衷是因为在实用Spring事务的时候,我在A方法中调用了B方法和C方法,原意是想如果B方法中报错,则回滚B方法;如果C方法中异常,则只回滚C方法,B方法和C方法不会相互影响。于是我在B方法和C方法上加了@Transactional注解,A没有加。结果测试发现结果并非所想。于是便分析了一番,现将分析结果做个分享:1、spring事务的传播机制及原因分析要知道上面原因产生的原因,则首先得知道Spring事务的传播机制PROPAGATION_REQUIRED – 支持当前事务,如果当前没有事务原创 2021-11-04 10:51:17 · 4799 阅读 · 0 评论 -
springboot源码跟读解析
1.Spring Boot 的入口类@SpringBootApplicationpublic class StartupApplication { public static void main(String[] args) { SpringApplication.run(StartupApplication.class, args); }} /** *resourceLoader:资源加载器 *primarySources:加载的主要资源类原创 2021-04-26 17:18:08 · 226 阅读 · 0 评论 -
JAVA 中的Optional类理解、学习与使用
Optional类是Java8新引进的一个主要用于解决的问题是臭名昭著的空指针异常(NullPointerException|)的一个类。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。在 Java 8 之前,任何访问对象方法或属性的调用都可能导致 NullPointerException,如下面这段代码String isoco翻译 2021-04-25 11:39:21 · 30081 阅读 · 0 评论 -
Spring Cloud Alibaba各个版本和Spring Cloud以及各个组件之间的关系一览
Spring Cloud Alibaba各个版本与Spring Cloud各个版本和Springboot各个版本对应关系Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot VersionSpring Cloud Hoxton.SR82.2.5.RELEASE2.3.2.RELEASESpring Cloud Greenwich.SR62.1.3.RELEASE2.1.13.RELEASESprin原创 2021-03-09 14:30:53 · 1433 阅读 · 2 评论 -
JAVA设计模式总结之代码学习23种设计模式
一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应原创 2020-12-04 17:31:18 · 468 阅读 · 0 评论 -
将一个浮点数随机拆分成n个不小于m的浮点数
/** *将一个数拆分成任意几个不小于m数的和 * @param n 将要被拆分成的数量 * @param sum 要拆分的数 * @param m 最小的数 * @return */ public static List splitInteger(int n, double sum,double m) { //随机抽取n-1个小于sum的数 List<Double> list =...原创 2020-08-17 13:05:10 · 362 阅读 · 0 评论 -
复习一波HashMap底层实现原理解析
HashMap是JAVA中最常见的集合类框架,也是java语言中非常典型的数据结构,同时也是我们需要长我的数据结构,更重要的也是面试题必问之一。我们常见的有集合数据有三种结构:1、数组结构 2、链表结构 3、哈希表结构 下面我们来看看各自的数据结构的特点:1、数组结构: 存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度块)缺点:插入和删除数据效率低,因插入数据,这个位置后面的数据在内存中都要往后移动,且大小固定不易动态扩展。原创 2020-08-17 09:56:09 · 12244 阅读 · 6 评论 -
sql中的类型对应java中的数据类型一览表
sql type—java type数据关系SQL Data TypeJAVA Data TypebigintBIGINTbinaryBINARYbitBITcharCHARdatetimeTIMESTAMPdecimalECIMALfloatFLOATimageLONGVARBINARYintINTEGERmoneyDECIMALncharCHARntextLONGVARCHARnumer原创 2020-08-13 09:52:56 · 3742 阅读 · 0 评论 -
Shiro中常见的过滤器
Shiro提供多个默认的过滤器,我们可以用这些过滤器来配置控制指定URL的权限,Shiro常见的过滤器如下:配置缩写对应的过滤器功能身份验证相关的anonAnonymousFilter指定url可以匿名访问authcFormAuthenticationFilter基于表单的拦截器;如“/**=authc”,如果没有登录会跳到相应的登录页面登录;主要属性:usernameParam:表单提交的用户名参数名( username); passwordParam:表单原创 2020-07-30 16:44:41 · 3813 阅读 · 0 评论 -
idea一些常用的快捷键汇总
动作快捷键说明Move Caret to Code Block EndCtrl+]诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处Move Caret to Code Block StartCtrl+[同上,快速跳至代码块的开始出Complete Current StatementCtrl+Shift+Enter将输入的if、for、函数等等补上{}或者;使代码语句完整Start New LineShift+Enter在当前行的下方开始...原创 2020-07-29 12:52:03 · 225 阅读 · 0 评论 -
关于Mybatis中的一级缓存与二级缓存的深入浅出
再谈Mybatis一二级缓存之前,先说说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据存放到缓存中,下次使用时就不必从数据库查询,而是直接从缓存中读取,避免频繁的操作数据库,减轻数据库压力,同时提高系统性能。一级缓存Mybatis一级缓存是SqlSession级别的缓存。在操作数据库时需要构造SqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的SqlSession之间的缓存数据去是互不影响的。也就是它只能作用在同一个SqlSession中,不同的SqlSession中原创 2020-05-26 15:34:54 · 419 阅读 · 0 评论 -
关于Springboot项目加载主配置文件的顺序以及将自定义的配置文件外置的方法详解
Springboot的出现大大的节省的我们平时搭建框架的进度,但是Springboot项目部署一般推荐的是将其项目打成jar包,这样也算是回归到java最初的设计思想,但是jar有一个弊端就是每次有个新的版本,我们都需要将其先解压,然后再修改里面的配置文件,这样每次部署中总会遇到这样那样的问题。如果我们可以将部署文件进行外置,那这样及时每次就算是版本上有了新的变化,我们也不用重新部署,只需要替换一...原创 2019-05-20 11:48:52 · 981 阅读 · 0 评论 -
java8的几大核心函数式接口
java的迭代速度可谓是日新月异。但是java中有几个版本确实里程碑式的。java8就是其中一个,java8中推出了好多新的特性:比如lambda函数式编程以及steam流就是java8中典型的新特性。今天我们就来说说java8中的几大核心的函数式接口。1、消费型接口 Consumer<T> void accept(T t) ; 既然是消费型接口...原创 2019-04-25 09:14:16 · 215 阅读 · 0 评论 -
@PostConstruct和@PreDestroy执行解释
最近开发中需要一个启动时调用方法将其数据加入缓存的需求,本来想写个监听器或者过滤器的 但是发现网上说两个注解可以实现,便试了一试,@PostConstruct和@PreDestroy那这两个注解到底是干什么用的了 今天我们来讨论一下,又说的不多的地方还望不吝赐教。从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@Pr...原创 2019-04-29 08:47:41 · 2025 阅读 · 0 评论 -
关于com.alibaba.fastjson.JSONArray转换出现$ref,$.list[2]等对象重复引用问题解决方案
在介绍问题之前,大家可以先看一下以下这个表格:名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true UseSingleQuotes 使用单引号而不是双引号,默认为false WriteMapNullValue 是否输出值为null的字段,默认为false WriteEnum...原创 2019-04-22 18:46:51 · 1505 阅读 · 0 评论 -
关于TortoiseGit无法切换/获取Github/GitLab上新建分支问题解决方案
Git是目前世界上最先进的分布式版本控制系统(没有之一),所以现在我们进入到企业开发中的时候,更多的都是采用git对其控制管理,但是关于git的使用,我们在平时的开发中或多或少的都会遇到一切问题。比如:解决冲突、提交合并请求、切换分支、更换仓库等。今天我们就来说说“关于TortoiseGit无法切换/获取Github/GitLab上新建分支问题解决方案”方法一:1、使用cd切换到自己的项目...原创 2019-04-22 08:43:55 · 3181 阅读 · 0 评论 -
系统找不到C:\ProgramData\Oracle\Java\javapath\java.exe问题及解决方案
今天由于项目原因 所以需要将电脑上的jdk8换成jdk6,结果安装完成后,换了环境变量,发现依然指向的是原来的jdk版本,百思不得其解,于是删除了电脑上安装的其它的jdk,,删除完成之后再执行java -version时发现报C:\ProgramData\Oracle\Java\javapath\java.exe错误,打开时候发现里面有三个exe文件,然后右键属性,发现指向的是比并非当前的环境变...原创 2019-04-02 11:07:05 · 1710 阅读 · 3 评论 -
springboot之maven项目打包讲解
1、打成war包正常打包 :mvn clean package 或者 mvn install忽略测试 : mvn clean package -Dmaven.test.skip=true原创 2019-03-27 11:07:12 · 277 阅读 · 0 评论 -
java左-右移运算符
<< : 左移运算符,num << 1 相当于num乘以2>> : 右移运算符,num >> 1 相当于num除以2比如num是40 (10进制) 对应的二进制为: 101000 = 2的5次方1+2的4次方4+2的3次方1+2的2次方0+2的1次方0+2的0次方0 (二进制转换为十进制方法原始方法)...原创 2019-07-02 14:26:16 · 338 阅读 · 1 评论 -
maven install时报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
最近打包springboot项目的时候遇到一个错误Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test半天摸不着头脑,上网查询了一下说是什么测试类的错误 加上@Ignore就好了,但是我加上之后发现还是不行,于是研究了半天终于得以解决,现就将其解决方分享一下,愿对各位君有所帮助:...原创 2019-03-25 10:51:58 · 2493 阅读 · 0 评论 -
Springboot加载perproties文件的几种方式
开发中我们经常会需要动态的配置的一些变量,而这些变量我们一般都是通过.properties文件来配置,那么,常见的加载.properties文件的集中方式都有那些1、通过@ConfigurationProperties注解的形式来加载 @ConfigurationProperties(prefix = "app") // @PropertySource(value = "appli...原创 2019-05-20 15:02:01 · 2214 阅读 · 0 评论 -
maven将不能下载的jar包加入到本地仓库的命令
开发中我们经常会遇到一些jar包需要我们手动加入到本地仓库,其命令如下mvn install:install-file -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc4 -Dversion=10.1 -Dpackaging=jar -Dfile=D:\DevelopmentEnvironment\db2jcc4.jar-DartifactId...原创 2019-05-20 15:14:06 · 399 阅读 · 0 评论 -
深入了解Spring Boot 核心注解原理
SpringBoot目前是如火如荼,所以今天就跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到零配置@SpringBootApplicationpublic class StartApplication{ public static void main(String[] args)...原创 2019-05-20 15:56:59 · 1521 阅读 · 0 评论 -
关于eclipse生成的maven的项目没有web.xml的问题解决方法(楼主亲测有效)
最近搭建maven项目的时候,发现搭建完成之后一直报错,查看了一下错误信息之后发现原来是因为新创建的maven项目中没有web.xml的原因,看了一下网上的解决方案,好多都是说:右击项目----->properties---->如下图楼主测试之后,发现并不能解决问题,最后解决方法如下:右击项目------>java EE Tools----->Generate开头的那个,然...原创 2018-06-09 13:45:07 · 1507 阅读 · 5 评论 -
关于git拉取项目时,报RPC failed; curl 18 transfer closed with outstanding read data remaining错的解决方案
之前在从git远程库拉取项目的时候,出现了如上错误,因为拉取时间过长才报的错,所以猜测是内存或者项目过大导致的无法拉取,所以搜了搜,网上说是解决方案有三种,一种是增大缓存区;二是浅克隆,也就是说克隆的时候,先少克隆一些,比如只克隆每个文件只取最近一次提交,不是整个历史版本,三是换协议:具体解决方案如下:一,加大缓存区git config --global http.postBuffer 52...原创 2019-10-10 17:15:40 · 5525 阅读 · 0 评论 -
如何修改java和javac版本不一致或者java版本和环境变量中的不一致问题
之前开发过程中突然间遇到java和javac版本出现不一致的问题,如下图:如何解决此问题了:我们只需要删掉下图目录的中的三个exe执行文件即可。java版本和环境变量中的不一致问题解决方案和上面方式一样...原创 2019-09-23 18:13:23 · 4237 阅读 · 3 评论 -
谈谈提升Java性能的40个优化细节!!!
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。比如我之前看到这样的代码,结果被一个应届生吐槽“也配叫程序员?”比如上面的代码看起来没事毛病,但是其代码质量未免有点太不尽如人意吧,这在效率上也不高吧。所以可见一个良好的编码习惯对于我们还是挺重要的。今天就和大家一起来讨论一下如何提升java性能的常见方法。在合适的...原创 2019-07-22 18:15:23 · 860 阅读 · 0 评论 -
IntelliJ IDEA 同一窗口查看多个项目(模块)
自从idea问世之后,好多之前的eclipse铁粉都逐渐投入了IDEA的怀抱,加入IDEA的阵营,不得不说楼主也是其中一个,其实在接触IDEA 之前,楼主的也是觉的eclipse没什么不好用的,但是第一次接触了idea之后,发现这款软件的强大,远远不再于它的提示。比如的它的页面,是我喜欢的风格,它的排版等。idea与eclipse最大区别之处在于: idea取消了工作空间的概念,将其变成模块(M...原创 2019-07-25 11:52:59 · 7472 阅读 · 0 评论 -
hashCode和equals的区别
在日常的面试中我们会经常遇到hashCode和equals相关问题,比如你重写过 hashcode 和 equals 么?为什么重写equals时必须重写hashCode方法?equals和hashCode都是Object对象中的非final方法,它们设计的目的就是被用来覆盖(override)的,所以在程序设计中还是经常需要处理这两个方法。下面就让楼主和各位一起在来看看它们两者的区别…hash...翻译 2019-07-02 11:24:48 · 280 阅读 · 0 评论 -
Java 中 == 与 equals 区别讲解
碰到“equals”和“==”这两个字符,老感觉差不多;其实还是有一些区别的,今天就楼主就和大家在确认一遍==介绍它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型比较的是值,引用数据类型比较的是内存地址)。基本数据类型: byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),...转载 2019-07-02 10:44:17 · 199 阅读 · 0 评论 -
idea常用的快捷键
ctrl+shift+N 快速搜索文件shift+shift 搜索任何文件alt+鼠标/上下键 多行编辑ctrl+f12 查看类中的所有方法ctrl+f 当前类搜索ctrl+r 当前类 替换ctrl+shift+f 全项目中搜索ctrl+shift+r 全项目中替换ctrl+d 快速复制一行ctrl + / 行注释CTRL+shift+...原创 2019-05-16 14:25:00 · 209 阅读 · 0 评论 -
Spring常见的面试问题以及解答
都说金三银四,这段时间正好是面试的旺季,说到面试,这两年随着Spring家族的不断壮大,Spring成了面试中必不可少的一个问点。今天我们就来说说面试过程中,经常会问到的关于Spring的一些问题。Spring 概述1、什么是SpringSpring是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但有些扩展是针对构建J2EE平台的web应用。Spring...原创 2019-03-12 15:26:36 · 403 阅读 · 0 评论 -
利用TortoiseGit给github上面上传项目以及上传项目时经常遇到的错误解决
我们本地有了一个项目,需要托管到github上面去,之前说过用git命令上传,今天说说如何利用TortoiseGit上传1、假设我们的java工程放在目录E:\\Test中,那么我们进入Test文件夹中,右键菜单点击【Git Create repository here】,弹出一个对话框要我们选择是否勾选【Make it Bare】,如果勾选上的话表示我们在当前目录中只有git的reposit...原创 2019-03-15 10:20:01 · 844 阅读 · 0 评论 -
关于git使用过程中报Permission denied以及git clone报错SSL certificate problem: self signe的解决方案
问题一:最近几天使用git的时候莫名的出现了error: could not lock config file C:/Windows/system32/config/systemprofile/.gitconfig: Permission denied的错误,之前一直使用的好好的,但是自己换了一个小乌龟的版本之后,突然就出现了下面图片中的错,很郁闷,百度了半天一直无效,很是无奈,一直没注意,去...原创 2018-08-02 14:08:45 · 2296 阅读 · 0 评论 -
JAVA详细讲解SSM框架以及搭建的其框架的步骤
做java开发的小伙伴都知道,ssm和ssh框架是平时开发中最常见的两大传统开源框架,也是最常用的框。虽然现在好多公司慢慢采用的SM搭建,但其实他的本质开发过程和ssm还是基本一致的,包括JEECG框架。具体的其他的框架我就不在这里多说了,需要了解的小伙伴可以自己百度一下:今天我们具体的来谈一谈SSM框架......SSM框架,顾名思义,就是Spring+SpringMVC+mybatis...原创 2018-08-09 10:55:58 · 29918 阅读 · 2 评论 -
java中设置Cookie的HttpOnly和secure属性
一、属性说明:1 secure属性当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。2 HttpOnly属性如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Co...原创 2018-07-29 16:33:49 · 9017 阅读 · 0 评论 -
关于Git每次进入都需要输入用户名和密码的问题解决
之前使用git的时候每次都需要输入密码,输入一次两次还好,每次都输入真的恨不得砸电脑,相信各位小伙伴都需到过和我一样的问题,今天我们就来说说这个问题:首先,如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁的输入账号和密码会很麻烦,也特别烦恼。...转载 2018-07-29 11:13:15 · 27819 阅读 · 4 评论 -
eclipse或者myeclipse如何将WEB项目(非maven项目)打成war包
我们经常发布或者部署项目的时候,常常需要把我们自己的项目打成一个war包,我们都知道maven项目我们可以直接使用maven命令将项目打成war包,而非maven的web项目打成war是如何实现的了?其实也很简单:如上图,在我们自己的项目右击,选择导出(export),选择WAR file,直接下一步,然后选择要保存的位置即可生成war包最后我们将生成的war包放到tomcat...原创 2018-07-24 14:02:36 · 3741 阅读 · 0 评论 -
关于JAVA多线程实现以及使用的讲解
java多线程是我们平时开发工作中经常用到的技术,也是面试或者笔试过程中高频技术点:下面楼主就关于Java中我们常用到的多线程的技术简单的说说,文章中有什么错误或者问题的欢迎各位小伙伴指出并且留言,楼主会认真学习并且改正的哦,大家好才是真的好······要了解多线程,首先我们需要知道java是如何实现多线程的呢? 由于线程是依赖于进程而存在的,所以我们应该先去创建一个进程,而进程是由系统创建的,...原创 2018-07-05 13:42:25 · 460 阅读 · 0 评论 -
git讲解以及git命令大全
git是目前世界上最先进的分布式版本控制工具,他是林纳斯-托瓦兹开发的一款最初只能运行在linux上的代码管理工具,改工具的诞生也挺有意思的,具体git的前世今生大家可以去百度上看看,这里就不多说,反正就是最后慢慢的扩展到了windows上......j具体的我们就不多说,直接进入今天的主题......git命令大全.....电脑上还没有安装git的小伙伴可以去git官网:http://msysg...原创 2018-07-09 10:27:04 · 3396 阅读 · 2 评论