JAVA 使用aspose-words 实现 word转pdf
2023.12.5 更新项目运行中发现,引入了org.apache.poi太多的包,导致内部有依赖冲突且很不好排查,修改后直接使用aspose-words的包就能实现word转换pdf更新后的pom依赖 <dependency> <groupId>com.luhuiguo</groupId> <artifactId>aspose-words</artifactId> <version>23.1</version></dependency><dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.5</version></dependency> 核心代码: import com.aspose.words.Document;impor...
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 文...
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项目配置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() 方法,...
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 路径。 ...
使用 Tailwind CSS 引入小米字体 告别原生自带丑字体
1.效果展示整体效果更加圆润丝滑,看的也比较舒服,之前的微软雅黑啥的总感觉在看word文档,很不舒服 2.引入步骤src的assets目录下新建fonts文件夹放入字体文件编写fonts.css fonts.css内容: @font-face { font-family: 'Miss Font'; font-style: normal; font-weight: 400; font-display: swap; src: url('Miss_Font_1.woff2') format('woff2');}@font-face { font-family: 'Miss Font'; font-style: normal; font-weight: 400; font-display: swap; src: url('Miss_Font_2.woff2') format('woff2');}@font-fa...
用chatgpt为网站首页绘制一个canvas星空特效
1.介绍canvas 是 HTML5 引入的一个强大元素,用于在网页上绘制图形。它为开发者提供了一种在网页里绘制2D图形的机制,并且可以在其上进行动态图形渲染。canvas 元素本身是一个容器,必须通过 JavaScript 来绘制图像。一个简单的 canvas 元素示例如下: <canvas id="myCanvas" width="400" height="300"></canvas> 1.1 如何使用获取 Canvas 画布在 JavaScript 中,你需要获取 canvas 元素的 2D 渲染上下文,该上下文提供了绘制线条、矩形、文本等的方法: const canvas = document.getElementById('myCanvas');const ctx = canvas.getContext('2d'); 1.2 常用功能 图片绘制: 可以通过 drawImage() 方法在 canvas 上显示图片。 动画: 通过不断更新 can...
vue3+vite初始化项目
为什么使用vite1. 启动速度和热更新速度Vite:Vite 利用了现代浏览器原生支持的 ES 模块(ESM),在开发环境下直接使用原生 ESM 进行模块加载,无需打包,因此启动速度非常快。热更新(HMR)也几乎是即时的,因为 Vite 只更新发生变化的模块,而不是整个应用。 Vue CLI:Vue CLI 使用 Webpack 进行打包,启动和热更新速度相对较慢,尤其是在大型项目中。 2. 开发体验Vite:Vite 的开发体验更加流畅,因为它不需要等待整个应用打包完成就可以开始开发。开发者可以更快地看到代码变化的效果。 Vue CLI:Vue CLI 在开发过程中需要等待打包完成,尤其是在项目规模较大时,开发体验相对较差。 3. 现代工具链Vite:Vite 是一个现代化的构建工具,支持 TypeScript、JSX、CSS 预处理器等现代前端开发所需的工具链。它还内置了对 Vue 3 的支持,并且可以轻松集成其他工具和插件。 Vue CLI:虽然 Vue CLI 也支持现代工具链,但它的架构和配置相对复杂,尤其是在需要自定义配置时。 4. 生态系统Vite:Vite 的生...
vue3开发h5页面实现扫描二维码功能
安装依赖html5-qrcode 是一个用于在现代浏览器中进行二维码扫描的 JavaScript 库。它利用 HTML5 的 getUserMedia API 来访问设备的摄像头,并使用 QRCode 库来解码二维码。这个库非常适合在 Web 应用中实现二维码扫描功能,尤其是在移动设备上。 npm install html5-qrcode 实例组件<template> <div> <button @click="startScan">扫码</button> <p v-if="qrCodeContent" style="display: inline-block; margin-left: 10px;">{{ qrCodeContent }}</p> <div id="reader" style="width: 100%;"></di...
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 规则中,确保跨浏览器的兼容...














