vue 整合 Tailwind CSS 一个高度可定制的CSS框架
1. 什么是 Tailwind CSS ?Tailwind CSS 是一个高度可定制的、实用工具优先的 CSS 框架,它使你能够通过组合小型、单一用途的类来构建现代网站界面,而无需写任何 CSS。 2. 为什么选择 Tailwind CSS? 高度可定制:Tailwind CSS 提供了一整套预设样式,但所有这些都是完全可配置的。 实用工具优先:它允许你通过在 HTML 中组合类,而不是自定义 CSS,来迅速构建响应式页面。 优化生产环境:Tailwind CSS 在生产环境中会自动移除未使用的样式,这有助于保持 CSS 文件大小最小。 3. 开始安装执行如下命令,开始安装 Tailwind CSS : npm install -D tailwindcss postcss autoprefixer 此命令会在你的项目中安装三个依赖,它们分别是: tailwindcss:Tailwind CSS 框架本身。 postcss:一个用于转换 CSS 的工具。 autoprefixer:一个 PostCSS 插件,用于自动添加浏览器供应商前缀到 CSS 规则中,确保跨浏览器的兼容...
Vite 配置路径别名:更方便的引用文件
1. 什么是 alias?alias 是一个用于定义路径别名的配置选项。当你的项目结构变得复杂时,路径别名可以帮助你简化 import 或 require 语句中的路径,让代码更干净、更可维护。 2. 为什么需要 Alias?我们在 /router/index.js 文件中引入了 index.vue 组件,格式是下面这样的: import Index from '../pages/frontend/index.vue' 通过 .. 来指定上一级目录,然后再定位具体路径下。考虑一个大型项目中,我们经常需要这样的引用,当文件层级很深,那么代码可能会像下面这样: import Button from '../../../components/Button.vue'; 这种相对路径不易于管理和阅读。使用 alias,我们可以将路径简化为: import Button from '@/components/Button.vue'; 这样一来,不仅路径更短、更明确,而且移动文件时无需改动 import 路径。 ...
springboot项目配置Lombok 避免编写那些冗余的 Java 样板式代码
1.介绍Lombok 是一个超酷的 Java 库,它能让你避免编写那些冗余的 Java 样板式代码,如对象中的 get、set、toString 等方法,解放你的双手,堪称偷懒神器,在企业级项目开发中,是必会的一个库。 1.1 简化 Getter 和 Setter 方法在传统的 Java 开发中,你经常需要为每个类的属性手动编写 Getter 和 Setter 方法,但是有了 Lombok,你只需要在属性上加上 @Getter 和 @Setter 注解,Lombok 就会为你自动生成这些方法。 1.2 自动生成构造函数通过 @NoArgsConstructor、@RequiredArgsConstructor 或 @AllArgsConstructor 注解,你可以快速生成无参构造函数、带有必需参数的构造函数或者带有全部参数的构造函数。不用每个需要注入的对象都添加@Autowrite了 1.3 自动生成 equals 和 hashCode 方法通过 @EqualsAndHashCode 注解,Lombok 会根据类的字段自动生成 equals() 和 hashCode() 方法,...
springboot项目打包docker镜像并部署
1. 为什么要使用docker首先我们不使用docker去启动,那么我想项目的部署需要通过maven将项目打包成jar包,丢到环境上去启动,如果服务发生异常springboot挂掉项目是需要手动重启的。 而且别人使用你的项目也需要下载源码,里面里面的一些配置改成自己的,然后再打包成jar,按照同样的步骤去部署,不是很友好。 而通过docker我们可以将一下自定义的内容比如对象存储服务、数据库等通过环境变量的形式,在启动容器的时候去设置,而镜像可以发布到镜像仓库,使用者拉取就可以直接使用非常的方便。 2. 打包步骤2.1 配置修改修改application.yaml将里面一下配置挪到prod文件中 server: # 端口号 port: 8081spring: profiles: active: dev jackson: # 设置后台返参,若字段值为 null, 是否返回# default-property-inclusion: non_null date-format: yyyy-MM-dd HH:mm:ss servlet: multip...
Springboot 整合持久层框架 Mybatis Plus
1. 什么是 MyBatis Plus?MyBatis Plus (简称 MP) 是一款持久层框架,说白话就是一款操作数据库的框架。它是一个 MyBatis 的增强工具,就像 iPhone手机一般都有个 plus 版本一样,它在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis Plus 的愿景是成为 MyBatis 最好的搭档,效率翻倍。 2. MyBatis Plus 的优势 快速开发:MyBatis Plus 提供了一系列的便捷功能,如自动生成 SQL 语句、通用 Mapper 等,使数据库操作更加高效,能够节省开发时间。 更少的配置: Spring Boot 已经为我们提供了很多默认的配置,整合 MyBatis Plus 时只需少量的配置,减少了繁琐的配置步骤。 内置分页插件:MyBatis Plus 内置了分页插件,无需额外的代码,就可以轻松实现分页查询。 更好的支持: MyBatis Plus 在社区中有较广泛的使用,拥有活跃的维护者和开发者,您可以轻松找到解决方案和文档。 3. 整合3.1 添加依赖在父项目的 pom.xml 文...
Spring Security 整合 JWT :实现身份认证
1. 什么是 JWT?JWT(JSON Web Token)是一种用于在不同应用之间安全传输信息的开放标准(RFC 7519)。它是一种基于 JSON 的轻量级令牌,由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。JWT 被广泛用于实现身份验证和授权,特别适用于前后端分离的应用程序。 令牌类似下面这一大长串: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJxdWFueGlhb2hhIiwiaXNzIjoicXVhbnhpYW9oYSIsImlhdCI6MTY5Mjk1OTY2MSwiZXhwIjoxNjkyOTYzMjYxfQ.wbqbn23C9vAe5sQZRCBzrIM4SiN1eNl55NIONmHoiPHPHSSu0QJGgPGUin80hA4XgMHEqN1Wm5KJlmKKucUyGQ 可以看到,由 header.payload.signature 三部分组成,你可以在此网站: https://jwt.io/ 上获得解析结果: 2. 为什么要使用 JWT?JWT 提供了一种在客户端和服务器之间传输安全信息的简...
Spring Boot 自定义注解,AOP切面实现 API 请求日志记录
1.前言在后端业务中,对每次请求的入参、被请求类、方法,以及出参、执行耗时等信息进行日志打印,是很有必要的,有了这些信息,当某个接口出现问题时,可以帮助我们快速完成问题的追踪。那么,Spring Boot 中要如何实现呢? 相对于这种与主流程有一定的功能解耦的相对独立小功能可以使用springboot的切面来在关键地方织入我们的程序。 2.什么是自定义注解 (Custom Annotations)?Java 注解是从 Java 5 开始引入的,它为我们提供了一种元编程的方法,允许我们在不改变代码逻辑的情况下为代码添加元数据。这些元数据可以在编译时或运行时通过反射被访问。 自定义注解就是用户定义的,用于为代码提供元数据的注解。例如,本小节中自定义的 @ApiOperationLog 注解,它用来表示一个方法在执行时需要被记录日志。 3.什么是 AOP (面向切面编程)?AOP(Aspect-Oriented Programming,面向切面编程)是一个编程范式,它提供了一种能力,让开发者能够模块化跨多个对象的横切关注点(例如日志、事务管理、安全等)。 主要概念包括: 切点 (Po...
Spring Boot 整合 Logback 日志替代 log4j
1.介绍Logback 是日志框架 SLF4J 的一个实现,它被设计用来替代 log4j。Logback 提供了更高的性能,更丰富的日志功能和更好的配置选项。 1.1 为什么要用它?在 Spring Boot 中,Logback 是默认的日志实现,至于官方为何用它作为默认日志组件,有以下几个原因: 性能:Logback 在性能上超越了许多其他的日志实现,尤其是在高并发环境下。 灵活性:Logback 提供了高度灵活的日志配置方式,支持从 XML、Groovy 以及编程式的方式进行配置。 功能丰富:除了基本的日志功能,Logback 还提供了如日志归档、日志级别动态修改、事件监听等高级功能。 与 SLF4J 集成:SLF4J 是一个日志门面(facade),使得应用程序可以在运行时更换日志实现。Logback 作为 SLF4J 的一个原生实现,可以无缝地与其集成。 与 Spring Boot 的自动配置集成:Spring Boot 提供了对 Logback 的自动配置,这意味着开发者无需手动配置 Logback,只需提供一个简单的配置文件即可。 2.引入依赖由于 Spring ...
Spring Boot 实现 JSR 380优雅的参数校验
1. 介绍在业务开发中,我们需要对前端传入的各种参数做格式、长度、合规性校验,如果全部用if去判断写在业务代码里,观感非常的不好,也不够轻量。 2. JSR 380 参数校验注解Spring Boot 提供了简洁的方法,让我们能够利用 Java 校验 API (JSR 380) 中定义的注解进行参数校验。JSR 380,也被称为 Bean Validation 2.0,是 Java Bean 验证规范的一个版本。该规范定义了一系列注解,用于验证 Java Bean 对象的属性,确保它们满足某些条件或限制。 以下是 JSR 380 中提供的主要验证注解及其描述: @NotNull: 验证对象值不应为 null。 @AssertTrue: 验证布尔值是否为 true。 @AssertFalse: 验证布尔值是否为 false。 @Min(value): 验证数字是否不小于指定的最小值。 @Max(value): 验证数字是否不大于指定的最大值。 @DecimalMin(value): 验证数字值(可以是浮点数)是否不小于指定的最小值。 @DecimalMax(value): 验证数...
p6spy 组件打印完整的 SQL 语句、执行耗时
1. 前言配置SQL打印一方面可以了解到每个操作都具体执行的什么 SQL 语句, 另一方面通过打印执行耗时,也可以提前发现一些慢 SQL,提前做好优化, 省得 DBA 公开处刑。注意,生产环境不推荐打印执行 SQL,会有数据泄漏风险,仅推荐本地开发使用。 2. 添加依赖在父项目的 pom.xml 文件中,声明 p6spy 依赖的版本号: <properties> // 省略... <p6spy.version>3.9.1</p6spy.version> </properties> <dependencyManagement> <dependencies>// 省略... <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>...











