springboot使用研究
map-underscore-to-camel-case: true
开启驼峰命名
@GetMapping("/userInfo")public Result<Users> userInfo(@RequestHeader(name = "Authorization") String token,HttpServletResponse response) {Map<String, Object> map = JwtUtil.parseToken(token);
// System.out.println(","+map.get("user")+"."+map.get("user"));String username =(String) map.get("username");Users u = usersService.findByUserName(username);return Result.success(u);}
threadlocal
相当于全局变量
//全局变量 全局共享变量
public class ThreadLocalUtils {private static ThreadLocal THREAD_LOCAL = new ThreadLocal();
// 根据键值对取值public static <T> T get() {return (T)THREAD_LOCAL.get();}
// 存储键值对public static void set(Object o) {THREAD_LOCAL.set(o);}
// 清除 防止内存泄露public static void remove() {THREAD_LOCAL.remove();}
}
线程安全的
// 根据用户名查询@Select("select * from users where username=#{username}")Users findByUserName(String username);// 添加注册
// @Insert("insert into users(username,password,create_time,update_time) values(#{username},#{possword},now(),now())")
// void add(String username, String possword);@Insert("insert into users(password,username) values(#{possword},#{username})")void add(@Param("possword")String possword, @Param("username")String username);@Select("select * from users where username=#{username} and password=#{possword}")Users find(@Param("username")String username, @Param("possword")String possword);@Update("update users set nickname=#{nickname},email=#{email},update_time=#{updateTime} where id=#{id}")void update(Users u);
Notnull 不能为null
notempty 不能为null并且不能为空
emai email格式校验
@validated 满足的实体进行生效
@pattern


添加validated才能够生效
@URL 判断是否为url地址
@Update("update users set password=#{newpwd},update_time=now() where id=#{id}")void updatePwd( @Param("newpwd")String newpwd, @Param("id") Integer id);
<dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0</version></dependency>
添加依赖 使用
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class ExampleEntity {
@Id
private Long id;
@Column(name = "\"order\"") // 使用双引号来包围关键字
private String order;
// 省略getter和setter
}
使用redis进行token失效 主动失效
集成redis
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
data:redis:host: 127.0.0.1port: 6379
//这个注解,单元测试执行之前,先初始化这个容器
@SpringBootTest
public class redistest {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Testpublic void test(){
// 向redis中添加键值对ValueOperations<String,String> valueOperations = stringRedisTemplate.opsForValue();valueOperations.set("username","world");
// 秒过期valueOperations.set("id","1", 15,TimeUnit.SECONDS);
// String hello = valueOperations.get("username");
// System.out.println(hello);}@Testpublic void gettest(){
// 向redis中添加键值对ValueOperations<String,String> valueOperations = stringRedisTemplate.opsForValue();
// valueOperations.set("username","world");String hello = valueOperations.get("id");System.out.println(hello);}
}
redis的操作
// 删除redis某个keyValueOperations<String,String> val = stringRedisTemplate.opsForValue();val.getOperations().delete("token");
String token1 = stringRedisTemplate.opsForValue().get("token");if(token1==null){throw new RuntimeException();}else{}
拦截器拦截中的token判断
<groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version>
打包jar包

打包

打包之后的位置
jar -jar jar包名称
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version> </plugin>
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version></plugin>
打包用的配置plugin

改为false
修改端口 java -jar big.jar --server.port=9999
相关文章:
springboot使用研究
map-underscore-to-camel-case: true 开启驼峰命名 GetMapping("/userInfo")public Result<Users> userInfo(RequestHeader(name "Authorization") String token,HttpServletResponse response) {Map<String, Object> map JwtUtil.parseT…...
老旧房屋用电线路故障引起的电气火灾预防对策
摘 要:在我国新农村建设方针指引下,农村地区的发展水平有了显著提高。在农村经济发展中,我们也要认识到其中存在的风险隐患问题,其中重要的就是火灾事故。火灾事故给农村发展带来的不利影响,不仅严重威胁到农村群众的生…...
OpenAI发布GPT-4.0使用指南
大家好,ChatGPT 自诞生以来,凭借划时代的创新,被无数人一举送上生成式 AI 的神坛。在使用时,总是期望它能准确理解我们的意图,却时常发现其回答或创作并非百分之百贴合期待。这种落差可能源于我们对于模型性能的过高期…...
【WEEK11】学习目标及总结【Spring Boot】【中文版】
学习目标: 学习SpringBoot 学习内容: 参考视频教程【狂神说Java】SpringBoot最新教程IDEA版通俗易懂员工管理系统 页面国际化登录功能展示员工列表增加员工修改员工信息删除及404处理 学习时间及产出: 第十一周MON~SAT 2024.5.6【WEEK11】…...
Unity 性能优化之图片优化(八)
提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、可以提前和美术商量的事1.避免内存浪费(UI图片,不是贴图)2.提升图片性能 二、图片优化1.图片Max Size修改&#x…...
C++类细节,面试题02
文章目录 2. 虚函数vs纯虚函数3. 重写vs重载vs隐藏3.1. 为什么C可以重载? 4. 类变量vs实例变量5. 类方法及其特点6. 空类vs空结构体6.1. 八个默认函数:6.2. 为什么空类占用1字节 7. const作用7.1 指针常量vs常量指针vs常量指针常量 8. 接口vs抽象类9. 浅…...
Stylus的引入
Stylus是一个CSS预处理器,它允许开发者使用更高级的语法来编写CSS,并提供了一些额外的功能来简化和增强CSS的编写过程。以下是关于Stylus的详解和引入方法的详细介绍: 一、Stylus的详解 特点和功能: 变量:允许你定义…...
前端框架-echarts
Echarts 项目中要使用到echarts框架,从零开始在csdn上记笔记。 这是一个基础的代码,小白入门看一下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" co…...
【StarRocks系列】 Trino 方言支持
我们在之前的文章中,介绍了 Doris 官方提供的两种方言转换工具,分别是 sql convertor 和方言 plugin。StarRocks 目前同样也提供了类似的方言转换功能。本文我们就一起来看一下这个功能的实现与 Doris 相比有何不同。 一、Trino 方言验证 我们可以通过…...
【2024最新华为OD-C卷试题汇总】URL拼接 (100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 文章目录 前…...
【ARM 嵌入式 C 字符串系列 23.7 -- C 实现函数 isdigit 和 isxdigit】
请阅读【嵌入式开发学习必备专栏 】 文章目录 isdigit 和 isxdigit C代码实现实现 isdigit实现 isxdigit使用示例 isdigit 和 isxdigit C代码实现 在C语言中,isdigit和isxdigit函数用于检查一个字符是否分别为十进制数字或十六进制数字。以下是这两个函数的简单实现…...
三分钟了解计算机网络核心概念-数据链路层和物理层
计算机网络数据链路层和物理层 节点:一般指链路层协议中的设备。 链路:一般把沿着通信路径连接相邻节点的通信信道称为链路。 MAC 协议:媒体访问控制协议,它规定了帧在链路上传输的规则。 奇偶校验位:一种差错检测方…...
数据结构===堆
文章目录 概要堆2条件大顶堆小顶堆 堆的实现插入元素删除堆顶元素 堆代码小结 概要 堆,有趣的数据结构。 那么,如何实现一个堆呢? 堆 堆,有哪些重点: 满足2条件大顶堆小顶堆 2条件 2条件: 堆是一个…...
AAA、RADIUS、TACACS、Diameter协议介绍
准备软考高级时碰到的一个概念,于是搜集网络资源整理得出此文。 概述 AAA是Authentication、Authorization、Accounting的缩写简称,即认证、授权、记帐。Cisco开发的一个提供网络安全的系统。AAA协议决定哪些用户能够访问服务,以及用户能够…...
Nacos高频面试题及参考答案(2万字长文)
目录 Nacos是什么?它的主要功能有哪些? Nacos在微服务架构中扮演什么角色?...
CMakeLists.txt语法规则:条件判断中表达式说明四
一. 简介 前面学习了 CMakeLists.txt语法中的 部分常用命令,常量变量,双引号的使用。 前面几篇文章也简单了解了 CMakeLists.txt语法中的条件判断,文章如下: CMakeLists.txt语法规则:条件判断说明一-CSDN博客 CMa…...
Hive概述
Hive简介 Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据. 它是Facebook在2008年8月开源的一个数据仓库框架,提供了类似于SQL语法的HQL(HiveSQL)语句作为数据访问接口. Hive可以做复查统计分析之类的工作; 利用hdfs的存储空间,进行结构化数据的存储; 利…...
buuctf-misc-33.[BJDCTF2020]藏藏藏1
33.[BJDCTF2020]藏藏藏1 题目:藏了很多层,一层一层的剥开 常规思路,先使用010打开一下看看 binwalk不行用foremost 发现是pk文件也就是压缩包,并且包含了docx文件 这不binwalk分离一下文件?虽然可以看出有隐藏文件&…...
golang 基础知识细节回顾
之前学习golang的速度过于快,部分内容有点囫囵吞枣的感觉,写gorm过程中有很多违反我常识的地方,我通过复习去修正了我之前认知错误和遗漏的地方。 itoa itoa自增的作用在编辑error code时候作用很大,之前编辑springboot的error c…...
递归陷阱七例
目录 栈溢出 无限递归 大常数参数 递归深度过大 重复计算 函数调用开销 递归与迭代的选择 总结 递归是一种强大的编程技术,它允许函数调用自身。递归在很多情况下可以简化代码,使问题更容易理解和解决。然而,递归也容易导致一些常见的…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
