当前位置: 首页 > news >正文

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…...

老旧房屋用电线路故障引起的电气火灾预防对策​

摘 要&#xff1a;在我国新农村建设方针指引下&#xff0c;农村地区的发展水平有了显著提高。在农村经济发展中&#xff0c;我们也要认识到其中存在的风险隐患问题&#xff0c;其中重要的就是火灾事故。火灾事故给农村发展带来的不利影响&#xff0c;不仅严重威胁到农村群众的生…...

OpenAI发布GPT-4.0使用指南

大家好&#xff0c;ChatGPT 自诞生以来&#xff0c;凭借划时代的创新&#xff0c;被无数人一举送上生成式 AI 的神坛。在使用时&#xff0c;总是期望它能准确理解我们的意图&#xff0c;却时常发现其回答或创作并非百分之百贴合期待。这种落差可能源于我们对于模型性能的过高期…...

【WEEK11】学习目标及总结【Spring Boot】【中文版】

学习目标&#xff1a; 学习SpringBoot 学习内容&#xff1a; 参考视频教程【狂神说Java】SpringBoot最新教程IDEA版通俗易懂员工管理系统 页面国际化登录功能展示员工列表增加员工修改员工信息删除及404处理 学习时间及产出&#xff1a; 第十一周MON~SAT 2024.5.6【WEEK11】…...

Unity 性能优化之图片优化(八)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、可以提前和美术商量的事1.避免内存浪费&#xff08;UI图片&#xff0c;不是贴图&#xff09;2.提升图片性能 二、图片优化1.图片Max Size修改&#x…...

C++类细节,面试题02

文章目录 2. 虚函数vs纯虚函数3. 重写vs重载vs隐藏3.1. 为什么C可以重载&#xff1f; 4. 类变量vs实例变量5. 类方法及其特点6. 空类vs空结构体6.1. 八个默认函数&#xff1a;6.2. 为什么空类占用1字节 7. const作用7.1 指针常量vs常量指针vs常量指针常量 8. 接口vs抽象类9. 浅…...

Stylus的引入

Stylus是一个CSS预处理器&#xff0c;它允许开发者使用更高级的语法来编写CSS&#xff0c;并提供了一些额外的功能来简化和增强CSS的编写过程。以下是关于Stylus的详解和引入方法的详细介绍&#xff1a; 一、Stylus的详解 特点和功能&#xff1a; 变量&#xff1a;允许你定义…...

前端框架-echarts

Echarts 项目中要使用到echarts框架&#xff0c;从零开始在csdn上记笔记。 这是一个基础的代码&#xff0c;小白入门看一下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" co…...

【StarRocks系列】 Trino 方言支持

我们在之前的文章中&#xff0c;介绍了 Doris 官方提供的两种方言转换工具&#xff0c;分别是 sql convertor 和方言 plugin。StarRocks 目前同样也提供了类似的方言转换功能。本文我们就一起来看一下这个功能的实现与 Doris 相比有何不同。 一、Trino 方言验证 我们可以通过…...

【2024最新华为OD-C卷试题汇总】URL拼接 (100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 前…...

【ARM 嵌入式 C 字符串系列 23.7 -- C 实现函数 isdigit 和 isxdigit】

请阅读【嵌入式开发学习必备专栏 】 文章目录 isdigit 和 isxdigit C代码实现实现 isdigit实现 isxdigit使用示例 isdigit 和 isxdigit C代码实现 在C语言中&#xff0c;isdigit和isxdigit函数用于检查一个字符是否分别为十进制数字或十六进制数字。以下是这两个函数的简单实现…...

三分钟了解计算机网络核心概念-数据链路层和物理层

计算机网络数据链路层和物理层 节点&#xff1a;一般指链路层协议中的设备。 链路&#xff1a;一般把沿着通信路径连接相邻节点的通信信道称为链路。 MAC 协议&#xff1a;媒体访问控制协议&#xff0c;它规定了帧在链路上传输的规则。 奇偶校验位&#xff1a;一种差错检测方…...

数据结构===堆

文章目录 概要堆2条件大顶堆小顶堆 堆的实现插入元素删除堆顶元素 堆代码小结 概要 堆&#xff0c;有趣的数据结构。 那么&#xff0c;如何实现一个堆呢&#xff1f; 堆 堆&#xff0c;有哪些重点&#xff1a; 满足2条件大顶堆小顶堆 2条件 2条件&#xff1a; 堆是一个…...

AAA、RADIUS、TACACS、Diameter协议介绍

准备软考高级时碰到的一个概念&#xff0c;于是搜集网络资源整理得出此文。 概述 AAA是Authentication、Authorization、Accounting的缩写简称&#xff0c;即认证、授权、记帐。Cisco开发的一个提供网络安全的系统。AAA协议决定哪些用户能够访问服务&#xff0c;以及用户能够…...

Nacos高频面试题及参考答案(2万字长文)

目录 Nacos是什么?它的主要功能有哪些? Nacos在微服务架构中扮演什么角色?...

CMakeLists.txt语法规则:条件判断中表达式说明四

一. 简介 前面学习了 CMakeLists.txt语法中的 部分常用命令&#xff0c;常量变量&#xff0c;双引号的使用。 前面几篇文章也简单了解了 CMakeLists.txt语法中的条件判断&#xff0c;文章如下&#xff1a; CMakeLists.txt语法规则&#xff1a;条件判断说明一-CSDN博客 CMa…...

Hive概述

Hive简介 Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据. 它是Facebook在2008年8月开源的一个数据仓库框架,提供了类似于SQL语法的HQL(HiveSQL)语句作为数据访问接口. Hive可以做复查统计分析之类的工作; 利用hdfs的存储空间,进行结构化数据的存储; 利…...

buuctf-misc-33.[BJDCTF2020]藏藏藏1

33.[BJDCTF2020]藏藏藏1 题目&#xff1a;藏了很多层&#xff0c;一层一层的剥开 常规思路&#xff0c;先使用010打开一下看看 binwalk不行用foremost 发现是pk文件也就是压缩包&#xff0c;并且包含了docx文件 这不binwalk分离一下文件&#xff1f;虽然可以看出有隐藏文件&…...

golang 基础知识细节回顾

之前学习golang的速度过于快&#xff0c;部分内容有点囫囵吞枣的感觉&#xff0c;写gorm过程中有很多违反我常识的地方&#xff0c;我通过复习去修正了我之前认知错误和遗漏的地方。 itoa itoa自增的作用在编辑error code时候作用很大&#xff0c;之前编辑springboot的error c…...

递归陷阱七例

目录 栈溢出 无限递归 大常数参数 递归深度过大 重复计算 函数调用开销 递归与迭代的选择 总结 递归是一种强大的编程技术&#xff0c;它允许函数调用自身。递归在很多情况下可以简化代码&#xff0c;使问题更容易理解和解决。然而&#xff0c;递归也容易导致一些常见的…...

Degrees of Lewdity中文本地化终极指南:从零开始畅玩完整汉化版

Degrees of Lewdity中文本地化终极指南&#xff1a;从零开始畅玩完整汉化版 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localiza…...

Mind+连接百度AI实战:手把手教你做一个能听会说的垃圾分类小助手

Mind与百度AI融合实战&#xff1a;打造智能垃圾分类助手的完整指南 在创客教育和STEAM领域&#xff0c;将硬件编程与人工智能结合已成为培养学生综合能力的新趋势。Mind作为一款图形化编程工具&#xff0c;以其低门槛和丰富的扩展库深受教育者和爱好者青睐。而百度AI开放平台提…...

语音端点检测VAD的深度学习进化:从传统方法到RNN的实战对比

语音端点检测VAD的深度学习进化&#xff1a;从传统方法到RNN的实战对比 在嘈杂的咖啡馆里&#xff0c;语音助手能否准确识别你的唤醒词&#xff1f;视频会议中&#xff0c;系统如何智能过滤键盘敲击声&#xff1f;这些场景的核心技术&#xff0c;都离不开语音端点检测&#xff…...

ChatTTS离线部署实战:从模型优化到生产环境效率提升

最近在做一个需要离线语音合成的项目&#xff0c;用到了ChatTTS这个效果不错的模型。但直接部署原版模型时&#xff0c;遇到了不少头疼的问题&#xff1a;推理速度慢、内存占用高&#xff0c;在资源受限的生产环境里简直是“吞金兽”。经过一番折腾&#xff0c;总算摸索出一套从…...

Python异步I/O终极避坑清单(2025版):涵盖SSL/TLS握手、数据库连接池、信号处理、子进程通信、日志异步刷盘等9大高危场景

第一章&#xff1a;Python异步I/O并发模型本质与事件循环演进Python异步I/O的核心在于避免阻塞式系统调用对线程的独占&#xff0c;转而通过单线程协作式调度实现高吞吐I/O密集型任务。其本质并非“多线程并行”&#xff0c;而是基于事件驱动的**非阻塞I/O 回调/协程调度 事件…...

基于SpringBoot+Vue的AI智能客服系统开发实战:从H5输入到语言提问的完整实现

最近在做一个AI智能客服项目&#xff0c;客户要求既要能在H5页面里打字提问&#xff0c;又要能直接语音对话&#xff0c;后台还得有个清晰的管理界面。这听起来简单&#xff0c;但真做起来&#xff0c;从技术选型到具体实现&#xff0c;坑可真不少。今天就把这次从零到一搭建“…...

专业硬件监控解决方案:LibreHardwareMonitor完全指南

专业硬件监控解决方案&#xff1a;LibreHardwareMonitor完全指南 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor, home of the fork of Open Hardware Monitor 项目地址: https://gitcode.com/GitHub_Trending/li/LibreHardwareMonitor 在当今数字化时代…...

Java OOM 异常:从原理、场景、排查到解决方案全攻略

原理 → 场景 → 排查 → 解决方案&#xff08;面试 线上实战必备&#xff09;这是后端开发、测试、运维必须烂熟于心的终极 OOM 指南&#xff0c;结构清晰、可直接用于复习、面试、故障处理。一、OOM 基础&#xff1a;到底什么是 OOM&#xff1f;1. 定义OOM OutOfMemoryErro…...

从DEM到智慧决策:河北地形分析在生态保护与灾害预警中的实战应用

从DEM到智慧决策&#xff1a;河北地形分析在生态保护与灾害预警中的实战应用 河北省作为中国地形最丰富的省份之一&#xff0c;从坝上高原到华北平原的过渡带&#xff0c;构成了一个天然的"地理实验室"。当我们谈论DEM&#xff08;数字高程模型&#xff09;时&#x…...

毕业设计实战:基于SpringBoot+Vue+MySQL的校园一卡通管理系统设计与实现指南

毕业设计实战&#xff1a;基于SpringBootVueMySQL的校园一卡通管理系统设计与实现指南 在开发“基于SpringBootVueMySQL的校园一卡通管理系统”毕业设计时&#xff0c;曾因器材借用表未通过学生ID与器材ID双外键关联踩过关键坑——初期仅单独设计借用表的编号字段&#xff0c;…...