事务隔离级别引起的问题

最近碰到了一个事务隔离级别引起的bug在一段业务逻辑中,需要查询两次标志位,但两次查询到的都是同样的结果,一开始以为是hibernate缓存的原因然后一通操作,发现两次查询发了两次sql,于是排除hibernate最后怀疑是隔离级别的问题,在手动设置隔离级别为“读已提交”后,问题解决
2020-07-16
IDEA自动生成实体类

IDEA自动生成实体类

idea里先添加数据库选择表,右键 ,先配置下脚本编辑Generate POJOs.groovyimport com.intellij.database.model.DasTable import com.intellij.database.util.Case import com.intellij
2020-07-03
手写Spring、SpringMVC

手写Spring、SpringMVC

目前实现了以下注解@Autowired 从容器中自动注入@Bean 标记方法返回值加入容器管理@Component 标记此类加入容器管理@RestController 标记此类为Rest风格的控制器 结果默认转为json@RequestMapping 前置匹配路径@GetMapping 匹配一个Ge
2020-07-01
编写自己的Spring Boot Starter

编写自己的Spring Boot Starter

1.新建一个maven项目命名规则统一是xxx-spring-boot-starter完整pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
2020-06-29

一些免费的api

仅用于交流学习,不得用于非法途径天气apihttp://www.tianqiapi.com/ip来源apiF12 点击查询 Network显示 https://tool.lu/ip/ajax.html,发起请求需要携带cookiehttps://tool.lu/ip/IP apihttps://sp
2020-06-29

关于redis缓存时间设置可能导致的bug

看到在项目代码中有人先调用redisTemplate的方法判断某个key是否存在,然后再调用redisTemplate的方法拿到这个key里的数据。但是,在设置了key缓存时间的情况下,这个逻辑就会出错。比如第一步这个key存在,但是紧接着key过期了,后面就会拿不到这个key,造成后面的逻辑出错所
2020-06-19

使用git将项目上传到github

git clone https://github.com/xxx/xxx.gitgit add . (注:别忘记后面的.,此操作是把xxx文件夹下面的文件都添加进来)git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)git push -u o
2020-05-18
CentOS7编译调试OpenJDK12

CentOS7编译调试OpenJDK12

1. 下载源码https://hg.openjdk.java.net/jdk/jdk12点击左侧的browse,再点击zip,就可以下载zip格式的源码压缩包。unzip xxx.zip 解压文件2. 安装jdkyum install java-11-openjdk-devel -y3. 运行con
2020-04-23
解决SpringBoot+JPA中使用set方法时自动更新数据库问题

解决SpringBoot+JPA中使用set方法时自动更新数据库问题

首先引入EntityManager:然后用它来强转获得HibernateEntityManager,然后调用获得Session,然后在set完之后用Session的.evict()方法清掉该对象缓存(并非所有对象缓存),如此就ok了...好吧,已经java11不建议用了,不过还能用,先用着吧!更新了
2020-04-04

Vue.js DOM操作

<template> <input type="button" @click="reply($event)" value="回复"> </template> export default { methods: { replyFun(e) {
2020-03-29

Java中的Date和时区转换

1.Date中保存的是什么在java中,只要我们执行 Date date = new Date(); 就可以得到当前时间。如:Date date = new Date(); System.out.println(date); 输出结果是: Thu Aug 24 10:15:29 CST 2017 也
2020-03-28

SpringBoot Undertow http跳转https

package com.mtons.mblog.config; import io.undertow.Undertow; import io.undertow.UndertowOptions; import io.undertow.servlet.api.SecurityConstraint; i
2020-03-28

SpringBoot 启动普通java工程

引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.0.9</version> </dependency>
2020-03-28

Docker 部署 详细全过程 附代码

Docker 部署本站 全过程环境:CentOS7.61. 安装Docker其他版本CentOS可以参考这个https://help.aliyun.com/document_detail/187598.html查看本机内核版本,内核版本需高于 3.10uname -r 确保 yum 包最新yum u
2020-03-28
基于自定义注解手写权限控制

基于自定义注解手写权限控制

方法一: AOP 方法二: 拦截器项目结构项目依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-w
2020-03-28

如何在Java中替换多个if语句

1. 概述选择结构是任何编程语言的重要组成部分。但是我们编写了大量嵌套的if语句,这使得我们的代码更加复杂和难以维护。 在本教程中,我们将介绍替换嵌套if语句的各种方法。 让我们探索如何简化代码的不同选项。2. 案例研究我们经常遇到涉及很多条件的业务逻辑,并且每个都需要不同的处理。为了演示,我们以C
2020-03-28
Java中方法的参数传递机制

Java中方法的参数传递机制

来看一段代码 public class Man { private String name; private Integer age; public String getName() { return name; } publi
2020-03-28

js向json中添加属性

object['attr'] = {};
2020-03-28

SpringDataRedis 常用操作

//向redis里存入数据和设置缓存时间 stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS); //根据key获取缓存中的val stringRedisTemplate.opsForValue().
2020-03-28