代码拉取完成,页面将自动刷新
同步操作将从 Exrick/xboot 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
作者目前大四 能力经验有限 如有错误欢迎指正 期待您的捐赠支持!
application.yml
相应配置,其中有详细注释xboot
数据库,配置文件已开启ddl自动生成表结构但无初始数据,请记得运行导入sql文件XbootApplication.java
默认端口8888 访问接口文档 http://localhost:8888/swagger-ui.html
说明启动成功 管理员账密admin|1234562.Spring Security整合JWT
项目使用 Lombok 插件简化开发,请自行在编译器中安装,不安装会报错但不影响运行,常用注解说明:
@Data
:自动生成get、set等方法@Slf4j
:日志打印可直接使用log.info()等配置文件可使用Jasypt加密,可到 cn.exrick.xboot.common
包中找到 JasyptUtil 工具类生成加解密结果
# 配置文件加密key
jasypt:
encryptor:
password: xboot
spring:
# 数据源
datasource:
# Jasypt加密 可到common-utils中找到JasyptUtil加解密工具类生成加密结果 格式为ENC(加密结果)
password: ENC(F4B0s6u9xcDw3V+P0qC4CA==)
接口相关
result
字段中保存token分布式限流(基于Redis令牌桶算法)
xboot:
# 全局限流
rateLimit:
enable: true
# 每1秒内
timeout: 1000
# 总限制100个请求
limit: 100
@RateLimiter(limit = 1, timeout = 5000)
分布式同步锁(基于Redis)
@Autowired
private RedisDistributedLockTemplate lockTemplate;
lockTemplate.execute("订单流水号", 5000, new Callback() {
@Override
public Object onGetLock() throws InterruptedException {
//TODO 获得锁后要做的事
log.info("生成订单流水号");
return null;
}
@Override
public Object onTimeout() throws InterruptedException {
//TODO 获得锁超时后要做的事
return null;
}
});
JPA与MybatisPlus随意切换
不想写sql?Spring Data JPA 了解一下
复杂业务逻辑JPA联表太蛋疼?MyBatis-Plus 这就不用了解了吧
JPA与MybatisPlus同时使用时需注意实体类注解区别,更多请见官方文档,常用注解区别:
//表名
JPA: @Table(name = "t_user")
MP: @TableName("t_user")
//排除非表字段
JPA: @Transient
MP: @TableField(exist=false)
@CacheConfig(cacheNames = "user")
public interface UserService extends XbootBaseService<User,String> {
@Cacheable(key = "#username")
User findByUsername(String username);
}
@CacheEvict(key = "#u.username")
手动删除刷新缓存时注意key为:user::username
@PreAuthorize("hasRole('ADMIN')")
@Scheduled(cron="cron表达式")
@Async
等自行了解
微信小程序APP
475743731
,还可免费获取 慕课网学习资源 和 UI框架
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。