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

不满意Oh My Zsh启动卡顿,来试试Starship吧裙

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咀日已伤

相关文章:

不满意Oh My Zsh启动卡顿,来试试Starship吧裙

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

VC0706摄像头模块UART驱动与状态机设计详解

1. VC0706 Camera Shield 驱动技术深度解析 1.1 芯片级架构与硬件接口特性 VC0706 是由深圳中星微电子(Vimicro)推出的低功耗、高集成度 JPEG 编码图像处理 SoC,广泛应用于早期嵌入式视觉模块。RadioShack 推出的 VC0706 Camera Shield 是基…...

EPFramewrokAtmega:面向AVR的确定性嵌入式固件框架

1. 项目概述EPFramewrokAtmega 是一个面向 Atmel AVR 系列微控制器(特别是 ATmega328P、ATmega2560 等主流型号)的轻量级嵌入式固件框架,其设计目标并非替代 Arduino 生态,而是为追求确定性、资源可控性与底层可追溯性的专业嵌入式…...

014、分布式系统核心:一致性、可用性与分区容错

014、分布式系统核心:一致性、可用性与分区容错 深夜报警:订单状态丢了 上周三凌晨两点,手机突然狂震。监控告警显示,订单服务的双活机房出现数据不一致——同一订单在A机房显示“已支付”,在B机房却是“待付款”。业务部门紧急来电,用户已经投诉付款后订单没反应。 团…...

基于Python的科研管理系统毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在开发一款基于Python的科研管理系统,以实现科研项目管理、数据存储与分析、团队协作与沟通等功能。具体研究目的如下:提高科研项…...

Typecho完美实现回复可见功能

之前转载过这么一篇文章《typecho非插件实现回复可见功能》,可以实现回复可见功能,但是有个问题,在文章列表页展示文章缩略内容时,如果回复可见内容刚好在缩略内容的位置上时,就会暴露出来,同时Feed里面也会…...

基于Python的多媒体信息共享平台毕设

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的多媒体信息共享平台,以解决当前多媒体信息共享过程中存在的诸多问题。具体而言,研究目的可概括为以…...

typecho按分类搜索文章

typecho根据分类搜索文章.jpg 之前我写的soso搜索增强插件其实已经能够根据分类进行搜索内容了,不过需要模板上进行配合,比如我们搜索分类id为2620下关于typecho的文章,需要传递分类id的参数给cat,让插件获取,比如这个…...

别再死记命令了!通过一个Packet Tracer静态路由实验,彻底搞懂‘下一跳’和‘出接口’的区别

别再死记命令了!通过Packet Tracer实验彻底搞懂静态路由的“下一跳”与“出接口” 刚接触网络配置时,很多人会陷入一个误区:把静态路由的配置命令当作魔法咒语来记忆。直到某天,当网络拓扑发生变化,或者需要在不同场景…...

3步揪出Windows热键小偷:Hotkey Detective终极使用指南

3步揪出Windows热键小偷:Hotkey Detective终极使用指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...

开源QMC解密工具深度解析:5分钟掌握音频格式转换核心技术

开源QMC解密工具深度解析:5分钟掌握音频格式转换核心技术 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 一键批量转换方法:跨平台音乐文件解锁方案…...

给STM32F429的RGB屏做个‘相册’:FATFS+软件解码JPG实战(避坑SD卡格式化)

STM32F429实战:构建安全高效的JPG图片浏览器 在嵌入式设备上实现图片浏览功能是许多项目的常见需求,尤其是当我们需要为产品添加图形界面或多媒体展示能力时。STM32F429凭借其强大的LTDC接口和DMA2D加速器,成为中高端嵌入式图形应用的理想选择…...

【JavaScript高级编程】拆解函数流水线 上衫

一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...

你的SSH密钥可能已经过期了噬

引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...

我试了四种去除 Gemini 水印的方法,整理成一篇实用对比撕

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

Stripe 支付集成实战:Java后端核心API详解与避坑指南

1. 为什么选择Stripe支付集成? Stripe作为全球领先的在线支付解决方案,特别适合需要处理国际支付的电商或SaaS平台。我在多个跨境项目中采用Stripe后发现,其API设计非常开发者友好,尤其是对Java后端技术栈的支持相当完善。与国内支…...

大模型“表面公平”陷阱(GPT-4/Claude/Gemini三大模型在12类敏感属性上的隐性偏差对比白皮书)

第一章:大模型工程化中的模型公平性评估 2026奇点智能技术大会(https://ml-summit.org) 大模型在招聘筛选、信贷审批、司法辅助等高风险场景中部署前,必须系统性验证其对不同人口统计学群体的预测一致性。公平性不是静态属性,而是需在数据分…...

从telnet到ssh:银河麒麟系统远程管理方案对比与迁移指南

从telnet到ssh:银河麒麟系统远程管理方案对比与迁移指南 在数字化运维的浪潮中,远程管理技术如同系统管理员的"千里眼"和"顺风耳"。银河麒麟作为国产操作系统的代表,其安全性设计一直走在行业前沿。然而,许多…...

3步快速部署开源驾驶辅助系统FlowPilot

3步快速部署开源驾驶辅助系统FlowPilot 【免费下载链接】flowpilot flow-pilot is an openpilot based driver assistance system that runs on linux, windows and android powered machines. 项目地址: https://gitcode.com/gh_mirrors/fl/flowpilot FlowPilot是一款基…...

【内部泄露】某千亿参数大模型压缩技术栈(含自研GEMM-aware剪枝+动态bit-width量化),仅限本文完整复现

第一章:大模型工程化中的模型压缩算法对比 2026奇点智能技术大会(https://ml-summit.org) 模型压缩是实现大语言模型在边缘设备、低延迟服务及成本敏感场景中落地的关键工程环节。不同压缩路径在精度保留、推理加速比、部署兼容性与训练资源消耗上呈现显著权衡&…...

AXI总线协议---关键信号时序解析与实战应用

1. AXI总线协议基础与核心信号解析 AXI(Advanced eXtensible Interface)总线协议是ARM公司推出的高性能片上总线标准,广泛应用于现代SoC设计和FPGA开发中。我第一次接触AXI是在一个图像处理项目里,当时为了调试DMA传输问题&#x…...

为什么92%的大模型项目在灰度阶段超期?资深MLOps架构师披露3个被忽视的工程化断点

第一章:大模型工程化灰度发布策略的全局认知 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化灰度发布并非简单的流量切分,而是融合模型版本管理、服务可观测性、推理性能约束与业务语义反馈的系统性治理过程。它要求在保障线上服务质量&am…...

Verdi高效代码追踪:Auto Trace与Trace X的进阶应用技巧

1. Verdi调试利器:Auto Trace与Trace X入门指南 刚接触Verdi时,我最头疼的就是在复杂的门级网表中追踪信号路径。记得第一次调试一个深度流水线设计时,手动点击了二十多级寄存器才找到信号源头,不仅效率低下还容易遗漏关键路径。直…...

AI模型交付即违规?(大模型工程化中的5大高危伦理雷区与司法判例复盘)

第一章:AI模型交付即违规?(大模型工程化中的5大高危伦理雷区与司法判例复盘) 2026奇点智能技术大会(https://ml-summit.org) 当企业将一个微调后的LLM封装为SaaS服务交付客户时,法律风险可能已在模型权重、提示词模板…...

Orion Framework:嵌入式轻量级REST客户端实现

1. Orion Framework 框架深度解析:面向嵌入式系统的轻量级 REST API 客户端实现1.1 定位与工程价值辨析Orion Framework 并非通用 Web 框架,而是一个专为资源受限嵌入式环境设计的精简型 REST API 客户端通信中间件。其核心工程目标明确:在无…...

RTC-8564实时时钟芯片驱动开发与低功耗设计实践

1. RTC-8564 实时时钟芯片深度技术解析与嵌入式驱动开发实践RTC-8564 是 Philips(现 NXP)推出的一款低功耗、IC 接口实时时钟芯片,广泛应用于工业控制、智能电表、医疗设备、POS 终端及各类需要高精度时间保持能力的嵌入式系统中。该芯片采用…...

ESP32嵌入式Ruby运行时:mruby/c轻量脚本引擎实战

1. 项目概述mrubyc-esp32-arduino是一个面向 ESP32 平台 Arduino Core 的轻量级嵌入式 Ruby 运行时实现,基于mruby/c(micro ruby compact)—— mruby 的超精简子集,专为资源受限的 MCU 环境设计。该项目并非通用 mruby 移植&#…...

FPGA DNA 唯一芯片识别码的实战获取与加密绑定指南

1. FPGA芯片DNA码:你的硬件身份证 第一次听说FPGA芯片还有"DNA"时,我差点笑出声——难道芯片也要做亲子鉴定?后来才发现,这个比喻实在太贴切了。就像每个人的DNA都是独一无二的,每块FPGA芯片也内置了不可复制…...

轻量级旋转编码器驱动库:纯C状态机实现高可靠正交解码

1. 项目概述RotaryEncoder 是一个轻量级、高可靠性的旋转编码器(Rotary Encoder)底层驱动库,专为嵌入式实时系统设计。它不依赖操作系统抽象层(如 FreeRTOS 或 CMSIS-RTOS),亦不绑定特定 HAL 库&#xff08…...

C# WinForm开发:如何用statusStrip1打造一个实用的状态栏(附完整代码)

C# WinForm状态栏实战:从基础布局到高级交互设计 在桌面应用开发中,状态栏作为用户界面的"信息中枢",承担着实时反馈系统状态、显示操作进度和提供快捷操作入口的重要角色。对于C# WinForm开发者而言,StatusStrip控件是…...