springboot
文章平均质量分 71
孟秋与你
懂点spring,懂点儿调优,会写点与众不同的java工具类,能写点简单的脚本语言,发布过idea小插件,套模板写过vue,python,写过套壳网页安卓apk,部署过自己项目的伪全栈
展开
-
【java】java sftp访问文件夹,java smb访问共享文件夹 按时间过滤查找文件 集成springboot
本文介绍了java中如何进行sftp传输及smb传输访问共享文件夹 ,复制代码前 请先认真看注意事项。原创 2023-02-21 17:20:13 · 3024 阅读 · 2 评论 -
【springboot】 通过jdk8特性 优雅的写入日志(非常推荐) 解决@valid失效问题
valid 可以帮助我们节省很多代码 比较方便 但操作失误时 可能会失效 达不到我们预期效果;@valid会有个问题 因为注解过于方便 反而会导致拦截后 错误日志的收集会比较麻烦 ,以及在面对有时需要拦截 有时不需要拦截的特定场景下 显得无计可施 此时我们还是要回归手写校验本文将从解决@valid失效问题 及提供更灵活的方案两个方面进行简述。原创 2022-12-26 11:44:35 · 3404 阅读 · 0 评论 -
for循环里面事务不回滚
场景示例:void methodA(){for(T t : tList){ methodB(t) }} @Transactional(rollbackFor = Exception.class)void methodB(T t){// do}这其实是个误区,和for循环没必然关系,只是这种场景比较有代表性:循环中,单次回滚,之前执行的不能受影响;也就是说我们要对methodB出现异常进行回滚,而methodA上面不能加事务注解,记住我们是methodA没加注解这句话,然后看这原创 2021-01-21 15:33:33 · 2663 阅读 · 0 评论 -
【spring】Spring事务相互调用失效分析,事务回滚失败原因,事务的传播机制
1.第一种情况 :调用方加上@Transactional 注解,被调用方未加上注解 (同一个service类)Exp:@Transactionalvoid methodA(){// insert table1methodB(Object obj);}void methodB(){// insert table2}结论:methodB()出现异常,抛给methodA,A中捕获到异常,进行回滚处理,table1,table2都未插入2.第二种情况:调用方未加上注解,被调用方加上注解(同原创 2021-01-07 15:41:30 · 4797 阅读 · 6 评论 -
【springboot】 springboot发送QQ邮件 springboot整合mail教程
本文介绍两种方式 一种是springboot的方式,一种是原生java方式 (springboot也是基于原生java方式进行封装的)。邮件发送的实际应用场景有:给用户发送通知消息、告警信息;给公司开发、运维人员推送告警消息等。原创 2021-12-10 15:28:42 · 3598 阅读 · 0 评论 -
【bean拷贝工具】beanutils.copyproperties 结果为null
beanutils.copyproperties (a,b)a中有desc字段, b中也有desc ,可拷贝之后,b.desc 为null这里分析一种可能:get set方法写错了,例如b中原先字段名为 testDesc,这时我们手动生成get set方法,后来把testDesc字段改成了desc,但是get set 方法忘记了重新生成,就会造成这种情况。原因基本就是截取字段错误 : 方法名为 getTestDest ,subString 截取到的是testDesc,如果感兴趣可以看之前我写的一原创 2021-07-05 12:03:40 · 5301 阅读 · 3 评论 -
【springboot】为什么阿里规范规定Transactional注解要显示加上rollbackFor = Exception.class?
如果没有显示的声明 在抛出IO异常和SQL异常等(及其子类) 可检查性异常时,不会进行回滚可检查性异常:非运行时异常 (在编译前就可以检测出来 最直观的体现是在IDE中直接爆红 让我们进行处理)不可检异常: 运行时异常 (运行时候才报错 在运行前检测不出来)举例:......@Transactionalpublic void method(Entity e) throws FileNotFoundException{ // 数据库中插入了e的数据 // FileNotFoundE原创 2022-03-10 18:09:06 · 620 阅读 · 0 评论 -
【activiti】activiti7集成springboot2.5教程
idea中下载插件 注意idea 2019前和2019之后插件是不一样的2019及之前版本插件叫做 actiBPM:(或者去idea官网下载插件 然后在idea中手动导入)2019之后版本插件 Activiti BPMN visualizer (actiBPM已经不适用了):在插件marketplace里面搜 如果搜不到就去官网找插件 然后手动导入导入activiti的核心jar包:我使用的是activiti6版本 , 不同的activiti版本 api会有差异 <d..原创 2022-03-19 23:38:32 · 1259 阅读 · 0 评论 -
【springboot】springboot如何自动创建数据库表 使用自定义配置节点
import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;/** * 中间表创建策略配置 * @author qkj */@ConfigurationProperties(prefix = "spring.activiti")@Datapublic class CustomTableProperties { private boolean customT原创 2022-03-24 14:54:45 · 1701 阅读 · 0 评论 -
【security】spring security放行不生效,security放行后还是被拦截,路径变成了/error,security匿名用户无法访问
文章目录security最初的配置初步改进后的配置排查真实原因更加合理的配置之前写了篇关于security认证的文章 感觉对security了解多了一点,直到遇到过滤器层面的问题,才明白security终究还是那个复杂的security。security最初的配置@Configurationpublic class SecuritySecureConfig extends WebSecurityConfigurerAdapter { @Override protected voi原创 2022-05-13 17:20:41 · 19524 阅读 · 0 评论 -
【security】spring security原理分析 从源码入手
认证部分进入认证过滤器:AbstractAuthenticationProcessingFilter.doFilter()/** 判断当前filter是否可以处理当前请求,若不行,则交给下一个filter去处理。*/if (!requiresAuthentication(request, response)) { chain.doFilter(request, response); return;}这里也可以实现UsernamePasswordAuthenticatio原创 2022-03-25 17:08:12 · 593 阅读 · 1 评论 -
【spring】spring bean的生命周期 springboot工作原理
从springboot启动流程分析bean的生命周期:实例化,填充属性,初始化,销毁毫无疑问 点击进入SpringApplication.run方法 ,run方法只做了一件事:new SpringApplication(class).run(args);构造方法里面主要是进行一些初始操作,getSpringFactoriesInstances方法是去获取通过SPI机制暴露的接口接着看run方法run 方法里面有一步很关键的 refreshContext(context)如何知道是这一步为关键原创 2021-07-20 17:22:40 · 316 阅读 · 1 评论 -
【security】security getAuthentication().getPrincipal()只能获取用户名
天坑 找了一下午才找到原因 记录一下debug跟踪 发现setAuthentication(result)的时候 都是正常的 ,principal为实体对象 ,但是get的时候就变成字符串了项目背景:springcloud项目 有多模块,在B模块中 引入了A模块(因为需要用到A模块的某个Component)操作:B模块application中需要指定 ComponentScan (不指定默认只扫描本包 及B模块包下Component),为了省事,直接指定了@ComponentScan("com.原创 2021-07-04 18:33:59 · 9144 阅读 · 0 评论 -
springboot aop注意事项 防踩坑
@Around 才有ProceedingJoinPoint ,且需要利用aop拦截方法时 只有ProceedingJoinPoint才会进入核心代码生效@Around 一定要return proceed 否则程序进入切面后终止@AfterReturning 返回后通知中, 如果参数中的第一个参数为JoinPoint,则第二个参数为返回值的信息 如果参数中的第一个参数不为JoinPoint,则第一个参数为returning中对应的参数 returning:限定了只有..原创 2021-07-02 17:54:48 · 486 阅读 · 1 评论 -
【redis】redis自增序列以及服务重启后自增序列失效问题解决
思路:用RedisAtomicLong获取自增数,然而在redis服务关闭重启后,自增序列又会从之前的数据开始计算,导致自增数重复,这和我之前写的一篇文章:redis重启后 删除的key值又恢复了情况 非常像,其实是文件还没开始新一步持久化,因为redis默认RDB 方式, 我们需要开启AOF方式,找到redis的配置文件:redsi.windows.conf几个主要参数介绍:<!-- redis3.x中 默认是no 表示不开启aof 我们需要改成yes -->appendonly no原创 2021-04-13 17:07:38 · 2648 阅读 · 0 评论 -
【springboot】@EnableWebMvc注解有什么用?导致@RestController不返回json default-property-inclusion: non_null不起作用?
相信有比较多的一部分开发同行思维都是这样,没必要画流程图,懒得画,业务理清了就好。当然,如果说开发年限很长了,经验老道,业务熟练,那画不画都无所谓了。如果对于初中级开发人员,或者针对复杂的业务,个人觉得业务流程图是有必要的。其一:开发之前,业务可能理清楚了,但是开发进行到后期,很可能脑子就开始混乱,业务条理开始不清晰其二: 只有亲自画流程图,当自己流程图出现不规范的时候,并且想着怎么优化流程图的时候,才知道业务逻辑可以被优化。流程图可以说是我们思维的形象化,流程图不规范,说明我们的逻辑很可能不是最优原创 2021-04-09 11:51:44 · 4175 阅读 · 0 评论 -
@RequestParam,@PathVariable和@Param的区别?
一、@PathVariable代码部分为了方便观察 ,特地将@PathVariable注解里面的名字和参数名不一致即@PathVariable(“id”) String test, @PathVariable(“name”) String test1而不是@PathVariable(“id”) String id, @PathVariable(“name”) String namepostman测试输出结果: aa—bb通过结果可以看出, 当@PathVariable注解声明了值(“原创 2020-11-23 14:49:49 · 900 阅读 · 0 评论 -
Could not find the main class: org.springframework.boot.loader.JarLauncher. Program will exit.
cmd java -jar报错:Could not find the main class: org.springframework.boot.loader.JarLauncher. Program will exit.已知:jdk版本不一致的时候会出现这个错误。注意cmd java -version 自己电脑的环境变量是什么 例如环境变量配置的是jdk1.6,而springboot项目是jdk1.8 就会出现此错误...原创 2020-08-17 14:42:59 · 9810 阅读 · 0 评论 -
idea springboot项目启动图标没了 idea右上角run消失
并发症:(idea右上角) 图标打红叉,启动键消失,变成java普通项目的图标。虽然在application里面可以启动,java普通项目的图标也是可以 正常启动,但是重启就多开项目 并且报 端口占用,总之强迫症是不允许这样的。解决方案:setting plugins 往下划把spring boot勾上...原创 2020-08-15 00:57:45 · 6091 阅读 · 3 评论 -
【springboot】url路径没错报404? target class文件不更新!
报404的可能也比较多,比如最近在研究一个springboot+vue+shiro的前后端分离项目,导入别人项目,自己新增一个模块后就404,原来的模块都正常访问。排查vue:1.js访问路径是否有误2.检查路由(如果原来模块能访问,这个基本可以判定没问题了)检查shiro:1.权限正常2.前端权限判断 也正常springboot部分:直接输入后端端口加requestmapping的地址,发现竟然也是404,那基本问题不是或者说不仅仅是前端了 后端本身已经出了问题!**重点来了:由原创 2020-07-28 18:26:32 · 847 阅读 · 0 评论 -
springboot+vue 前后端分离项目怎么启动,怎么部署?vue项目windows linux部署 域名访问教程合集
注:导入项目教程 0基础适用1.node,js是什么? 如果说相当于java中的jdk 那就很清晰了,使js脱离浏览器 可以运行的环境,下载地址:https://nodejs.org/en/download/ 安装时默认会选择配置环境变量,或自己手动配置,安装完成后,cmd命令检验是否成功 注意是双横杆2.idea 导入springboot+vue项目springboot部署:maven路径修改 改成自己的对应路径! (需网上 下载maven 注意maven需要配置环境变量)打开项目之后原创 2020-07-25 15:02:28 · 23988 阅读 · 1 评论