
java碎碎片
文章平均质量分 84
uweii
悟已往之不谏
知来者之可追
展开
-
使用JSR(Java规范请求)规范校验请求参数
JSR(Java规范请求,Java Specification Requests)是Java的一个验证框架,它定义了很多注解来验证Bean 的属性。spring-boot-starter-web包里面有hibernate-validator包,hibernate-validator实现了JSR的规范。所以如果开发 web 就不需要重复添加 spring-boot-starter-validation 依赖了。但如果没用 web 依赖时候想要实现 Bean 验证,则只要单单加入 spring-boot-st原创 2021-03-25 22:02:33 · 828 阅读 · 0 评论 -
Springboot登录会话过期,重定向到登录界面
Springboot实现登录过期,重定向到登录页面集成spring session很多时候我们网站都会需要登录和验证.试想: 如果我登录了网站后, 有事离开了电脑60分钟; 在这段时间内, 如果有人使用我的电脑, 那么我的账号是十分危险的.因此需要一个浏览器与服务器之间的会话, 在没有一定时间内没有交互的话, 就让这次登陆状态过期, 如果过期后, 在页面上点击, 让它跳转回登陆页面.这...原创 2019-12-15 19:37:44 · 12274 阅读 · 16 评论 -
程序员不能不懂的Retry机制
Retry重试机制当我们调用一个接口时, 可能由于网络等原因造成第一次失败, 再去尝试就成功了, 这就是重试机制.重试的解决方案有很多, 比如利用 try-catch-redo简单重试模式, 通过判断返回结果或监听异常来判断是否重试, 具体可以看如下例子:public void testRetry(){ boolean result = false; t...原创 2019-12-09 00:24:20 · 1822 阅读 · 2 评论 -
程序员一定不能错过的全局异常处理
SpringBoot全局异常使用自定义错误界面Springboot自带的错误提示界面不太友好, 我们自己实现错误界面.在src/main/resources/static 下面新建自定义错误页面404.html, 具体代码如下图所示:<!DOCTYPE html><html lang="en"><head> <meta charse...原创 2019-12-08 23:35:58 · 397 阅读 · 0 评论 -
Springboot事务的使用
Springboot事务的使用Springboot事务介绍 Springboot开启事务很简单, 只需要一个注解 @Transactional 就可以了, 因为在 Springboot 中已经默认对JPA, JDBC, Mybatis开启了事务, 引入它们依赖的时候, 事务就默认开启. 当然, 如果你需要用其他的ORM框架, 比如 Beat1SQL, 就需要自己配置相关的事务管理器. ...原创 2019-12-05 21:13:53 · 798 阅读 · 0 评论 -
Spring注解事务行为
Spring注解事务行为当事务方法被另一个事务方法调用时, 必须指定事务应该如何传播. 例如, 方法可能继续在现有事务中运行, 也可能开启一个新事务, 并在自己的事务中运行. 事务的传播行为可以在 @Transctional的属性中指定, spring定义了 7 种传播行为, 具体如下图所示.Spring传播行为表1 Spring事务播行为传播行为含义PROPAGA...原创 2019-12-05 01:20:34 · 242 阅读 · 0 评论 -
Spring常用注解含义
Spring常用注解含义@Service Springboot会自动扫描到@Service注解的类, 并把这些类纳入Spring容器中管理. 也可以用@Component注解, 只是@Service注解更能表明该类是服务层类.@Component 泛指组件, 当组件不好归类的时候, 我们可以使用这个注解进行标注.@Repository 持久层组件, 用于标注数据访问的组件, 即DAO层....原创 2019-12-04 23:49:45 · 589 阅读 · 0 评论 -
SpringBoot集成Druid
SpringBoot集成Druid先添加druid依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <versio...原创 2019-12-01 23:55:23 · 264 阅读 · 0 评论 -
springboot集成tkbatis,并借助PageHelper进行分页 添加依赖
springboot集成tkbatis,并借助PageHelper进行分页添加依赖spring依赖jdbc依赖tkmybatis依赖pagehelper依赖pagehelper-autoconfigure依赖<dependency> <groupId>org.springframework.boot</groupId>...原创 2019-11-30 23:07:15 · 681 阅读 · 0 评论 -
使用git将项目关联远程仓库并push到新的branch
场景:我有一个项目名为Test托管在GitHub,项目Test现在只有一个master分支,现在我朋友用邮件给我发了一份代码,我想把这份代码上传到我的Test项目的dev分支。lets go使用idea打开项目,然后在进入到项目所在目录,即/User/uwei/IdeaProjects/demo 目录,执行git init 来初始化git init初始化后,就将需要push到...原创 2019-11-14 21:47:53 · 2643 阅读 · 0 评论 -
使用@Conditional注解根据配置文件注入不同的对象
背景:项目中使用了datahub,kafka两种消息队列,为了避免硬编码,应该根据配置文件来决定使用哪种消息队列,以及初始化哪个对象。为了简洁,我只写了简单代码来表明实现逻辑。定义一个IBase的接口,声明一个send方法,然后datahub,kafka去实现:public interface IBase { void send();}@Component...原创 2019-10-14 00:14:16 · 1703 阅读 · 1 评论 -
IDEA调试
Step Over:进入下一步,如果是方法,那就直接跳过(F8)Step Into: 进入下一步,如果是方法就进入内部,但不会进入jdk封装的方法(F7)Force Step Into:强制进入下一步,不管是什么方法,如果是jdk封装的方法,也会进入(Alt + Shift + F7)Step Out:跳转到下一个断点,没有就直接运行到最后(Shift + F8)Run t...原创 2019-07-30 15:02:32 · 104 阅读 · 0 评论 -
Java实现邮箱验证功能
(p.s.减少出现554垃圾邮件1。先给自己抄送一份:message.addRecipient(Message.RecipientType.CC, new InternetAddress(from)); //给自己抄送一份,避免出现5542。给邮件设置header:message.setHeader("Header", "SHShop激活验证"); //添加header,防止网易...原创 2019-05-17 02:23:27 · 2864 阅读 · 0 评论 -
生产者消费者模式 - java
例子:生产者: 往一个公共的盒子里面放苹果消费者:从公共的盒子里面取苹果盒子:盒子的容量不能超过10方法一:Producer.java:public class Producer extends Thread{ private Test test; public Producer(Test obj){ this.test= obj;...原创 2019-03-29 23:48:17 · 169 阅读 · 0 评论 -
idea整合ssm框架,实现增删改查
1. 先创建一个maven项目,选择archetype-webapp,然后next2. 输入项目信息3,next --> finish4. 我的工程结构, main下没有Java目录就自己新建,然后标记为source5. 编辑pom.xml添加依赖文件<?xml version="1.0" encoding="UTF-...原创 2019-02-01 20:44:45 · 2199 阅读 · 0 评论 -
LeetCode:给定一个n个元素的数组,是否存在a,b,c三个元素,使用得a+b+c=0,找出所有符合这个条件的三元组
如题:思路:1. 先将数组排序2.循环遍历数组元素,采用双指针法,如:当前元素下标为 i ,则低指针为 i+1, 高指针为 arr.length - 1 .3. 如果三下标所对应元素的和 大于0,则高指针减小一,如果和小于0则低指针加一, 否则 则等于 0。4. 如果等于0,再判断有没有重复元素。代码:public class AddThreeToZero...原创 2018-11-13 02:01:33 · 4406 阅读 · 1 评论 -
计算两个日期相隔的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date now = new Date(); //获取当前日期 java.util.Date date=df.parse("2004-01-02 11:09:24"); long l=now.getTime()-date.getT...原创 2018-02-18 10:19:44 · 2152 阅读 · 0 评论