- 浏览: 162405 次
- 性别:
最新评论
文章列表
项目中使用 经常会用到一个orm框架-mybatis,使用到mybatis,就避免不了使用mybatis-generator。
一、添加mybatis依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</ver ...
这一篇我们介绍 Exit && Entry Action
一、依赖
<dependency>
<groupId>com.github.oxo42</groupId>
<artifactId>stateless4j</artifactId>
<version>2.5.0</version>
<exclusions>
<exclusion>
...
<audio class="audio-for-speech" src="/admin/blogs/2519501/"></audio>
<audio class="audio-for-speech" src="/admin/blogs/2519501/"></audio>
业务场景:
我们都玩过超级玛丽这款经典的游戏,里面有一个问题;就是玛丽的状态变化;
一、添加依赖 ...
业务中经常会遇到状态变更的场景
比如在外卖订单配送场景中,常有这样的业务:
骑手接单动作,会触发配送状态从 待结单 ->等待配送
骑手配送动作,会触发配送状态从 配送中->配送完成
针对如上的场景我们可以使用状态机来处理
spring 提供了状态机的使用,官方文档地址:https://spring.io/projects/spring-statemachine#learn
现在来做个简单介绍如何使用
一、添加依赖
目前使用的版本是 2.4.0
<dependency>
<groupId>org.spri ...
html
<!-- html 调用service -->
<select name="name" th:with="name=${@userService.getUserNameById('1')}">
<option value="">所有</option>
<option th:value="${name}" th:text="${name}">test</opti ...
<audio class="audio-for-speech" src="/admin/blogs/2517471/"></audio>
依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version ...
@Data
public class Goods implements Serializable {
private String id;
private String name;
private int stock;
}
String key = "123456";
//String script = " redis.call('set', KEYS[1], ARGV[1]) ";
// 注意 KEYS ARGV 需要大写,否则报错 ...
输出日志中加入traceId 进行链路追踪
- 博客分类:
- 链路追踪
环境 springboot 项目
定义一个filter
import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC;
import org.springframework.stereotype.Component;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletEx ...
spring boot基于redis的LUA脚本 实现分布式锁【都是基于redis单点下】
一.spring boot 1.5.X 基于redis 的 lua脚本实现分布式锁
1.pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency ...
spring线程池链路追踪
- 博客分类:
- 链路追踪
/**
* 装饰MDC 内容传递
*/
public class MDCTaskDecorator implements TaskDecorator {
@Override
public Runnable decorate(Runnable runnable) {
Map<String, String> contextMap = MDC.getCopyOfContextMap();
// 对Runnable进行装饰,将主线程的MDC内容设置到子线程的MDC中
return new Ru ...
mysql 常见优化
- 博客分类:
- MySql
一、 使用延迟查询优化 limit [offset], [rows]
经常出现类似以下的 SQL 语句:
SELECT * FROM film LIMIT 100000, 10
offset 特别大!
文字在div中水平和垂直居中
- 博客分类:
- CSS
.unchecked-btn{
height: 36px;
width: 150px;
border: 1px solid #d9d9d9;
border-radius: 4px;
display: flex; //设置display 为flex
align-items: center; // 设置垂直居中
justify-content: center; //设置水平居中
}
springboot 设置跨域
- 博客分类:
- springBoot
- 跨域
首先我们配置上host映射
前端:
index.html
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
</head>
<script th:src= ...
Debug configurations->spring boot app->Arguments -> VM arguments
输入: -Dserver.port=XXX即可
function timestampToTime(data) { // 时间转换
let date = new Date(data);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '/' + m + '/' + d;
}
timeFormat = (date,fmt) = ...