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

一个简洁易用的 Delphi JSON 封装库,基于 System.JSON`单元封装,提供更直观的 API

pagehelper整合引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码GetMapping(/list/{pageNo})public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数据List allVip vipService.findAllVip();// 将数据封装到pageinfo对象中PageInfo pageInfo new PageInfo(allVip);return pageInfo;}web层响应结果的封装对于前后端分离的系统来说后端会返回json数据一般会封装一个R对象来解决统一响应格式问题。package com.ali.springboot3ssm.result;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor;DataNoArgsConstructorAllArgsConstructorBuilder // 建造模式public class R {// 响应状态码private int code;// 消息描述成功或失败private String msg;// 响应对象任意类型对象private T data;public static R OK(T data) {return R.builder().code(200).msg(成功).data(data).build();}// 成功的方法public static R OK() {return R.builder().code(200).msg(成功).build();}// 失败的方法public static R FAIL(int code,String msg) {return R.builder().code(code).msg(msg).build();}public static R FAIL() {return R.builder().code(400).msg(失败).build();}}controller中使用GetMapping(/list/{pageNo})public R PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数,设置后会自动为查询语句加limitPageHelper.startPage(pageNo, 10);// 查询数据List allVip vipService.findAllVip();// 将数据封装到pageinfo对象中PageInfo pageInfo new PageInfo(allVip);return R.OK(pageInfo);}改进R对象添加一个枚举类型package com.ali.springboot3ssm.enums;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;NoArgsConstructorAllArgsConstructorpublic enum CodeEnum {// 枚举的大括号一开始的位置必须有枚举值// 枚举值下面如果没有代码枚举值列表最后的“”可以省略// 枚举值下面如果有代码枚举值列表最后的“” 不可以省略OK(200, OK),FAIL(400, 失败),BAD_REQUEST(400, 失败),NOT_FOUND(400, 失败),INTERNAL_ERROR(400, 失败),MODIFICATION_ERROR(400, 失败),DELETION_ERROR(400, 失败),CREATE_ERROR(400, 失败);GetterSetterprivate int code;GetterSetterprivate String msg;}重写R类DataNoArgsConstructorAllArgsConstructorBuilder // 建造模式public class R {// 响应状态码private int code;// 消息描述成功或失败private String msg;// 响应对象任意类型对象private T data;public static R OK(T data) {return R.builder().code(CodeEnum.OK.getCode()).msg(CodeEnum.OK.getMsg()).data(data).build();}// 成功的方法public static R OK() {return R.builder().code(CodeEnum.OK.getCode()).msg(CodeEnum.OK.getMsg()).build();}// 失败的方法public static R FAIL(CodeEnum codeEnum) {return R.builder().code(codeEnum.getCode()).msg(codeEnum.getMsg()).build();}public static R FAIL() {return R.builder().code(CodeEnum.FAIL.getCode()).msg(CodeEnum.FAIL.getMsg()).build();}}事务管理spring boot自动配置了事务管理器。只需要使用Transactional注解标注需要事务控制的方法即可。就这么简单。怎么打war包修改pom文件warorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-tomcatorg.springframework.bootspring-boot-starter-tomcatprovided启动类继承SpringBootServletInitializer类并重写configure方法MapperScan(basePackages com.ali.springboot3ssm.repository)SpringBootApplicationpublic class Springboot3SsmApplication extends SpringBootServletInitializer {Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(Springboot3SsmApplication.class);}public static void main(String[] args) {SpringApplication.run(Springboot3SsmApplication.class, args);}}日志处理抽象的日志框架什么时抽象的日志框架编译阶段可以使用抽象的日志框架能正常编译。但运行阶段必须提供具体的日志框架目的是具体的日志框架可灵活切换。抽象框架有SLF4J 、 Commons Logging。这2个都可以绑定具体的日志框架如Log4j、Log4j2、Logback、JUL具体的日志框架Log4j已过时、Log4j2推荐、Logback推荐、JULJava util Logging功能有限适合小型应用spring boot默认集成log back日志级别日志级别由低到高trace级别最低。记录最详细信息通常在调试时使用debug记录程序运行时的详细信息比如变量的值进入或退出某个方法等主要用于开发时调试info记录一般信息如系统启动、服务初始化完成等表示程序运行正常。warn警告信息error错误信息生成环境中 通常把日志级别设为info或更高级别开发或测试环境中设为debug或tracespring boot默认日志级别是infoSlf4j // 这是lombok的一个注解作用是为我们维护一个日志对象logSpringBootApplicationpublic class Springboot3SsmApplication {public static void main(String[] args) {SpringApplication.run(Springboot3SsmApplication.class, args);// 直接使用loglog.info(日志信息);}}调整日志级别# 调整日志级别logging.level.rootdebug日志的粗细粒度# 调整根日志级别全局的整个项目都是这个级别logging.level.rootdebug# 为特定包设置日志级别logging.level.com.ali.springboot3ssm.controllerdebug# 为特定类设置日志级别logging.level.com.ali.springboot3ssm.service.UserServicetrace# 在控制台中打印sql (这个包是Mapper类所在的包)logging.level.com.ali.springboot3ssm.repositorydebug日志输出到文件有2种方式这2种方式不能共存如果同时存在只有logging.file.name生效# 将日志文件输出到当前项目根目录下的log目录中。文件名默认spring.log 并且文件名不可修改# 路径可随便改。可以是硬盘上的任意有权限路径logging.file.path./log/# 日志文件输出到当前项目根目录下my.log文件。路径不可修改logging.file.namemy.log滚动日志防止日志无线增长将日志文件分割成多个文件避免单个文件过大难以处理# 此策略仅适合logback# 日志文件达到多大时进行归档,打成一个压缩包logging.logback.rollingpolicy.max-file-size10MB# 归档日志文件总共达到多大时删除logging.logback.rollingpolicy.total-size-cap50GB# 归档日志文件最多保留几天logging.logback.rollingpolicy.max-history60#启动项目时是否清理归档日志文件logging.logback.rollingpolicy.clean-history-on-startfalse# 归档日志文件名格式logging.logback.rollingpolicy.file-name-pattern${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz日志框架切换先排除log back 再引入新依赖org.springframework.bootspring-boot-starter-loggingorg.springframework.bootspring-boot-starter-log4j2坝略套奥

相关文章:

一个简洁易用的 Delphi JSON 封装库,基于 System.JSON`单元封装,提供更直观的 API

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

基于yolov26的桃子成熟度检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面

基于 PyQt5 和 YOLO26 的目标检测桌面应用程序,支持图片、视频和摄像头实时检测。 功能特性 图片检测:支持图片检测视频检测:支持视频文件实时检测与播放摄像头检测:支持实时摄像头视频流检测模型切换:支持加载不同的 …...

微软老员工称部分“被更新损坏“的电脑实际早已注定失败

据微软资深工程师雷蒙德陈表示,微软的系统更新并非总是客户设备损坏的罪魁祸首。有时这些设备早已存在问题,只是客户在补丁星期二重启尝试导致系统无法启动之前没有注意到。更新背后的真相陈在文章中写道:"我在企业产品支持部门的同事们…...

[源码开源] 被抄袭后我选择把 3w 用户日活千人的小游戏源码直接公开

小红书上最火的猜数字微信小程序游戏「谁输谁洗碗」开源啦,上线一个月累计注册用户超 3w ,支持双人对战的猜谜游戏,包含猜数字、猜颜色、每日挑战和残局解谜等多种游戏模式。 最近真的忙,辛苦做的游戏被人直接 1:1 照搬&#xff…...

LLM到Harness Engineering,我花一天时间捋清了这条技术链,终于搞懂了!

本文深入浅出地梳理了AI领域中的核心概念,从基础的大语言模型(LLM)、Token、Context、Prompt,到工具(Tool)、模型上下文协议(MCP),再到智能体(Agent&#xff…...

从 Agent 到 Skill:揭秘 AI 产品经理进阶的真正关键!

文章深入探讨了 AI 产品经理应如何理解和应用 Agent 与 Skill。文章指出,当前许多 AI 产品经理将注意力过度集中于 Agent,而忽略了 Skill 的重要性。实际上,Skill 是定义 Agent 在具体任务中行为、标准和质量的关键。文章详细阐述了 Skill 的…...

OFA图像描述系统实战:快速搭建图片转文字工具,避免常见权限错误

OFA图像描述系统实战:快速搭建图片转文字工具,避免常见权限错误 1. 项目介绍:让图片自己“说话”的智能工具 你有没有遇到过这样的场景?手头有一堆产品图片,需要为每张图配上文字描述,手动编写不仅耗时耗…...

嵌入式软件开发中的柔性数组机制

在嵌入式系统开发中,内存资源始终是最核心的约束之一。无论是微控制器还是低功耗控制终端,程序设计都必须在有限的存储空间中实现功能、效率与可靠性的平衡。因此,开发者不仅需要关注算法逻辑,还必须重视数据结构对内存的占用方式。 在这种背景下,柔性数组成为嵌入式软件…...

如何用xianyu_spider实现高效电商数据采集?从入门到精通的完整指南

如何用xianyu_spider实现高效电商数据采集?从入门到精通的完整指南 【免费下载链接】xianyu_spider 闲鱼APP数据爬虫 项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_spider 在当今电商竞争日益激烈的环境下,获取准确、及时的市场数据成为…...

基于stm32单片机的智能导盲系统的设计与实现

一、摘要 为提高视障人群出行的安全性与便捷性,设计并实现一套基于STM32F103C8T6单片机的智能导盲系统。系统集成多种传感器与功能模块,能够实现环境感知、位置信息反馈、跌倒检测与紧急求助等功能。通过SR04超声波传感器实时监测前方障碍物,…...

Elsevier Tracker:学术审稿状态自动化追踪解决方案

Elsevier Tracker:学术审稿状态自动化追踪解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker Elsevier Tracker是一款开源Chrome插件,专为学术研究者设计,提供Elsevier期刊审…...

软件开发常见骗局有哪些?

虚假高薪招聘陷阱以“零经验高薪入职”“包就业”为噱头,要求求职者付费培训。实际培训内容质量低下,承诺的就业机会无法兑现,甚至诱导贷款支付培训费用。外包项目诈骗谎称有高额预算项目外包,要求开发者支付“保证金”或“预付款…...

PHP 8新特性盘点

PHP 8 新特性概览PHP 8 引入了多项重大改进和新功能,以下为关键特性总结:JIT 编译器即时编译:通过 JIT(Just-In-Time)编译器提升性能,尤其适用于 CPU 密集型任务。配置选项:在 php.ini 中可通过…...

thinkphp8官方文档

以下是ThinkPHP 8官方文档的核心内容和相关资源整理:官方文档入口ThinkPHP 8的官方文档可通过其官网访问,文档地址为:https://www.thinkphp.cn/doc主要文档内容ThinkPHP 8文档包含完整的框架使用指南,涵盖安装、配置、路由、控制器…...

原神帧率解锁终极指南:三步轻松突破60FPS限制

原神帧率解锁终极指南:三步轻松突破60FPS限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 还在为《原神》60帧限制感到困扰吗?genshin-fps-unlock是一款专为《…...

长生露模式系统开发

模式系统设计 长生露模式通常指结合健康管理、会员服务或直销体系的综合系统。开发需明确业务模式定位,如会员积分、分销奖励或健康数据追踪。核心模块包括用户分层、权益分配、数据分析和后台管理。技术架构选择 采用微服务架构确保系统可扩展性,推荐Sp…...

python 最基础的一些

获取数组长度 lengthlen(list)for 循环数组 for i in list:print (i)打出来的就是数组里的每一个数据。for 循环数组下标 for i in range(length):print(list[i])寻找某个数据在数组里的下标 indexnums[i1:].index(numNeed)i1因为是从i1开始找的,然后用index函数获取…...

机器人运动规划:轨迹规划算法核心综述

前言在机器人和自动驾驶领域,“路径规划”(Path Planning)和“轨迹规划”(Trajectory Planning)是两个常被提及的概念。路径规划:解决“怎么走”的问题,关注空间几何路径,不含时间属…...

基于51单片机的电子秤(4挡)proteus、原理图、流程图 1185-基于51单片机的电子秤...

基于51单片机的电子秤(4挡)proteus、原理图、流程图 1185-基于51单片机的电子秤(4挡)proteus、原理图、流程图、物料清单、仿真图、源代码 功能介绍: 1、基本部分 (1)称重范围用开关分为三挡&am…...

2026年社会学论文降AI率工具推荐:田野调查和访谈记录部分

2026年社会学论文降AI率工具推荐:田野调查和访谈记录部分 同学群里有人问社会学论文降AI工具推荐,我发现自己每次回答都差不多——嘎嘎降AI。干脆写一篇详细的推荐文章,省得每次重复。 直接结论:嘎嘎降AI(www.aigcle…...

2026年硕士学位论文降AI率工具推荐:结论和展望部分怎么降

2026年硕士学位论文降AI率工具推荐:结论和展望部分怎么降 72%。 我收到知网检测报告那一刻,说实话有点懵。我那篇论文写了快两个月,每个字都是自己敲的。但学校的要求摆在那——AI率低于20%才能送审。折腾了几天之后,靠嘎嘎降AI…...

Fast Video Cutter Joiner(视频剪切合并软件)

链接:https://pan.quark.cn/s/fb790471c8c6Fast Video Cutter Joiner是一款强大的视频剪切合并工具,可以帮助用户对视频进行剪切或者合并处理,并支持编辑常见视频格式。这是一个快速的视频剪辑和加入软件,具有易于使用的界面。它允…...

提升开发效率:用快马一键生成自动化twitter x数据采集工具

今天想和大家分享一个提升开发效率的小技巧——如何快速搭建一个自动化采集Twitter X数据的工具。作为一个经常需要分析社交媒体数据的人,我发现手动收集数据实在太费时间了,于是研究了一下如何用Python实现自动化采集。 需求分析 首先明确我们需要实现的…...

提升前端效率:用快马实践vibe coding快速生成沉浸式番茄钟应用

最近在尝试提升前端开发效率时,发现了一种很有意思的开发方式——vibe coding。简单来说,就是通过描述想要的界面氛围和交互感觉,快速生成对应的功能代码。这种方式特别适合需要快速验证想法或者搭建基础框架的场景。 今天就用InsCode(快马)…...

零基础友好:跟着快马生成的交互式脚本轻松完成openclaw安装入门

作为一个刚接触编程的新手,第一次安装openclaw这样的工具时,面对复杂的命令行操作和可能出现的各种错误,确实容易感到手足无措。最近我在InsCode(快马)平台上发现了一个特别适合新手的交互式安装教程项目,它把整个安装过程变成了一…...

用 AI 做鸿蒙游戏 NPC,是一种什么体验?

子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...

3个颠覆级提速方案:ComfyUI-Manager下载性能优化指南

3个颠覆级提速方案:ComfyUI-Manager下载性能优化指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom…...

高并发接口总被打崩?我用 ArrayBlockingQueue + 底层源码深度剖析搞定流控

一、实现原理⚠️注意 ✔️有界阻塞队列:容量固定,必须在初始化时指定长度,无自动扩容机制。 ✔️先进先出(FIFO):入队元素从队尾添加,出队元素从队首取出。 ✔️存取互斥:所有读写操…...

Linux网络编程核心API速查手册

认识Pass层级结构 Pass范围从上到下一共分为5个层级: 模块层级:单个.ll或.bc文件 调用图层级:函数调用的关系。 函数层级:单个函数。 基本块层级:单个代码块。例如C语言中{}括起来的最小代码。 指令层级:单…...

3分钟搞定GitHub加速:国内开发者必备的免费终极解决方案

3分钟搞定GitHub加速:国内开发者必备的免费终极解决方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在为GitHub龟…...