Java使用spire.doc操作word文档(合并、插入文字图片和表格、替换书签)

news/2024/4/16 15:02:03/文章来源:https://blog.csdn.net/roc_wl/article/details/136565335

一、引入依赖

<dependency><groupId>e-iceblue</groupId><artifactId>spire.office</artifactId><version>7.5.4</version>
</dependency>

二、word操作

1、合并word文档

import com.spire.doc.Document;
import com.spire.doc.DocumentObject;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;/*** 合并Word文档** @Description* @Author ROC_WL* @Date 2024/3/8**/
public class MergerDocxTest {public static void main(String[] args) {//创建document对象Document document = new Document("D:\\temp\\document-blank.docx");//读取一个空的Word文档//加载一个需要写入的Word文档Document doc1 = new Document("D:\\temp\\document1.docx");for (int i = 0; i < doc1.getSections().getCount(); i++) {Section s = doc1.getSections().get(i);for (int j = 0; j < s.getBody().getChildObjects().getCount(); j++) {//获取文档中的段落和表格DocumentObject obj = s.getBody().getChildObjects().get(j);//将文档中的段落和表格插入到新的文档中document.getLastSection().getBody().getChildObjects().add(obj.deepClone());}}//循环写入for (int x = 0; x < 2; x++) {Document doc2 = new Document("D:\\temp\\document2.docx");for (int i = 0; i < doc2.getSections().getCount(); i++) {Section s = doc2.getSections().get(i);for (int j = 0; j < s.getBody().getChildObjects().getCount(); j++) {DocumentObject obj = s.getBody().getChildObjects().get(j);document.getLastSection().getBody().getChildObjects().add(obj.deepClone());}}}//保存文档document.saveToFile("D:\\temp\\mergerDocx.docx", FileFormat.Docx_2013);}
}

 

2、插入文字、图片、表格、富文本

import com.example.utils.DocxUtil;
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;import java.awt.*;
import java.util.ArrayList;
import java.util.List;/*** TODO** @Description* @Author WL* @Date 2024/2/28**/
public class DocxAddParagraphTest {public static void main(String[] args) {//创建document对象Document document = new Document("D:\\temp\\document-blank.docx");//获取最后一个sectionSection newSec = document.getLastSection();//添加文本Paragraph textParagtaph = newSec.addParagraph();//设置文本格式ParagraphStyle styleContent = new ParagraphStyle(document);styleContent.setName("codeStyle");styleContent.getCharacterFormat().setFontName("宋体");styleContent.getCharacterFormat().setFontSize(10f);styleContent.getParagraphFormat().setHorizontalAlignment(HorizontalAlignment.Left);document.getStyles().add(styleContent);textParagtaph.applyStyle("codeStyle");textParagtaph.appendText("第01号");Paragraph text1Paragtaph = newSec.addParagraph();//设置文本格式ParagraphStyle styleTitle = new ParagraphStyle(document);//设置样式名称styleTitle.setName("titleStyle");//设置字体styleTitle.getCharacterFormat().setFontName("宋体");//设置字体大小styleTitle.getCharacterFormat().setFontSize(20f);//设置文本颜色styleTitle.getCharacterFormat().setTextColor(Color.CYAN);//设置文本居中styleTitle.getParagraphFormat().setHorizontalAlignment(HorizontalAlignment.Center);//添加样式到文档document.getStyles().add(styleTitle);//应用样式text1Paragtaph.applyStyle("titleStyle");//添加文本text1Paragtaph.appendText("关于******公告");//添加文本Paragraph textPeoParagtaph = newSec.addParagraph();//设置文本格式ParagraphStyle stylePeoContent = new ParagraphStyle(document);stylePeoContent.setName("peoStyle");stylePeoContent.getCharacterFormat().setFontName("宋体");stylePeoContent.getCharacterFormat().setFontSize(12f);stylePeoContent.getParagraphFormat().setHorizontalAlignment(HorizontalAlignment.Left);document.getStyles().add(stylePeoContent);textPeoParagtaph.applyStyle("peoStyle");textPeoParagtaph.appendText("姓名:姜XX\t\t\t手机号码:13866669999");//添加文本Paragraph textAddParagtaph = newSec.addParagraph();//设置文本格式ParagraphStyle styleAddContent = new ParagraphStyle(document);styleAddContent.setName("addStyle");styleAddContent.getCharacterFormat().setFontName("宋体");styleAddContent.getCharacterFormat().setFontSize(12f);styleAddContent.getParagraphFormat().setHorizontalAlignment(HorizontalAlignment.Left);document.getStyles().add(styleAddContent);textAddParagtaph.applyStyle("addStyle");textAddParagtaph.getFormat().setFirstLineIndent(30f);textAddParagtaph.appendText("联系地址:湖北武汉");//添加表格List<String> headerList = new ArrayList<>();headerList.add("姓名");headerList.add("电话");headerList.add("地址");List<List<Object>> dataList = new ArrayList<>();List<Object> data1 = new ArrayList<>();data1.add("姜XX");data1.add("18899996666");data1.add("浙江");dataList.add(data1);List<Object> data2 = new ArrayList<>();data2.add("tj");data2.add("15549490011");data2.add("杭州");dataList.add(data2);List<Object> data3 = new ArrayList<>();data3.add("赵XX");data3.add("135****713");data3.add("武汉");dataList.add(data3);String tableTitle = "表格标题";DocxUtil.createTable(newSec, headerList, dataList, tableTitle);//添加图片// 创建 DocPicture 类的对象DocPicture picture = new DocPicture(document);// 从磁盘加载图片String images = "D:\\temp\\123.jpg";picture.loadImage(images);// 设置图片大小picture.setWidth(180); //示例:80picture.setHeight(180);//示例:50picture.setHorizontalPosition(110); //示例:110.0F 水平位置picture.setVerticalPosition(220); //示例:110.0F 垂直位置Paragraph picParagraph = newSec.addParagraph();picParagraph.getChildObjects().add(picture);//添加图片// 创建 DocPicture 类的对象DocPicture picture1 = new DocPicture(document);// 从磁盘加载图片String images1 = "D:\\temp\\321.jpg";picture1.loadImage(images1);// 设置图片大小picture1.setWidth(500); //示例:80picture1.setHeight(180);//示例:50picture1.setHorizontalPosition(110); //示例:110.0F 水平位置picture1.setVerticalPosition(220); //示例:110.0F 垂直位置Paragraph picParagraph1 = newSec.addParagraph();picParagraph1.getChildObjects().add(picture1);//添加富文本Paragraph tempSectionContentParagraph = newSec.addParagraph();String htmlContent = "<p>Spire.Doc for Java 是一款专业的 Java Word 组件,开发人员使用它可以轻松地将 Word 文档创建、读取、编辑、转换和打印等功能集成到自己的 Java 应用程序中。作为一款完全独立的组件,Spire.Doc for Java 的运行环境无需安装 Microsoft Office。</p>
<p>Spire.Doc for Java 能执行多种 Word 文档处理任务,包括生成、读取、转换和打印 Word 文档,插入图片,添加页眉和页脚,创建表格,添加表单域和邮件合并域,添加书签,添加文本和图片水印,设置背景颜色和背景图片,添加脚注和尾注,添加超链接,加密和解密 Word 文档,添加批注,添加形状等。</p>
<p><img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAAAXNSR0IArs4c6QAABWVJREFUeAHtnF9oW1Ucx3/nJumWZNXRqUh7W+PYFFa6NKAgKLVMHKgg+jARYYgMfaqwl3V7W/cidj46fVBERBHZi3tQx8ANGSKIQpqWPYyOLV1vowirxTaJS5N79vvdQdaO3Oacc+9NbsLJ0/3z/f3O9/fJ+XPvzW0B9EcT0AQ0AU1AE9AENAFNQBNoMwHW5vY3NZ8biJucwwQw9jJw/rhzkrEbuP0TY3AmvVS2NgW0eCc0sGbM+ASCOg0c4g0ZMCgDZ8cyhdInDc+34GAoYM30xz/kAMdF6kXD06OF8gkRrd8aw++EsvmyZmJKFBTlJi3FyLbjh76tPStrJifBtqeVCjGM4xmreFopVjGobbCcOcqGjxV9O2HMgPdHrfIZLzlkYtsCK2cmjnCbf45DylP7GMyZwd5NW6UvZIpW1Xoyq9LorJl8y7btrxGUL/MlFmAbhnF4v1X8VsWPTExLYeHQe53bcBYNRmVMCmirOCTfwCH5vYBWWdIyWLNm4iWb83N4LdWj7HaLQLxorRiMvbbfKp3fQubpVEtg5QZ2HOBQ+xFBbffktkkwAvufQeSV9NLapSZSpdOBw8oO9T7LqtULOEcllRxKBmFBxQhED44UVn+TDG0qDxTW3GDiqWoNLuKi9UBTJ74K2H/RCLwwslj608+0gcHCVW8E56hfOOd9fhoWzcUYW8Y5bBxXyTnRmGa6QGDl+nufxDnqMgf+SDMDQZ5nwP7BOWwsXVi96kc7vlzrbDQyO/Tgbs5qF9sNijyRB/JCnjZ6VN32tWfN9fcN1qCMPQpSqoaCiMMi8xGIj40Ulhe95PcN1pVU8tHKun0Zv869XgwFFstgvidmjA3ni3+rtuHLMLz6RO9D6xX+c2hBER38EskjeVWF5blnZVM7d7L1yiVc9TKqJloZh6tklsd6DmTyKyuy7XrqWVeGH96BoM53CiiCQ17JM3lvGaxF04xXVtZ+wMafkW203XryTN6pBhkvSj1rfs+ebbfs5XM4Dzwv01iotOidaqBaRH1Jw+Lj49G1cuEsXsMcFG0krDqqwakFaxLxKAWLHzoUyc3//g0O/FdFkneEBmuhmqi2Zn6FV0Mc52zGTH6JoN5ulrQjzzP21ahVfAdXS7ymbvwR7lm5gcQHXQuK2GAncGpszMk5KtSzZoZ6n4NqlW5jhPRbtBfqU1gch2h0bPTm6q+NjIr1rFp1ottBERynRqy1ESg6JgYL2ItuCbrvuHutgrBEoXYFOlcmric2l80vbN7v5j33WoVgxWLGUZzar3UzIqc2rNGp1aVQ4dWN7qOW4dZ7+CPp0whuoJ6PQwonxlR9vwM2sOg81pCvW+WwhD/S/tEHuz4btKxy/fh9G8Kw7our7+b6Eydt4FP1Ax2wYQCbShdKp2StCg1D2aTdqtewJL5ZobttiXxKUvrZHW8OvuMMFrZKgHdtj+Gl45tBvwbg5iEUsDhj0xmrNOVmcuNxfEVyAe/jTm481qrtUAxDg7ProgXLaEVziupCAQvNyqzKMlpRDkK6sMASMksiWw6scF4RYcfBEikqKI2GJUFWw9KwJAhISHXP0rAkCEhIdc/SsCQISEh1z9KwJAhISD33LHxisCbRXiikqp49w8I/YrNCQUDGhKJnz7B6YvjSbYd9VD17hrVvofQXPumkP4vriA95Jc8qZj3DokZj27YfwydSrj8hqRgLJAY9Ol4Vk/sCa/j6vzeBG2151CtVN3p0vEoF3RP7AovSZQrFj/A9k0nsYev30odky/FkTN71qO7JN1hkgcxEo5E0/nuUTxHaNZwfbqtb8xbptE2vHKAX8uQVlDc3OloT0AQ0AU1AE+gWAncAtcuNfiX0sWkAAAAASUVORK5CYII=" alt="" width="75" height="75" /></p>";htmlContent=htmlContent+"<p>&nbsp;</p>";tempSectionContentParagraph.appendHTML(htmlContent);//添加文本Paragraph text3Paragtaph = newSec.addParagraph();ParagraphStyle styleContent3 = new ParagraphStyle(document);styleContent3.setName("codeStyle3");styleContent3.getCharacterFormat().setFontName("宋体");styleContent3.getCharacterFormat().setFontSize(15f);document.getStyles().add(styleContent3);text3Paragtaph.applyStyle("codeStyle3");text3Paragtaph.appendText("第02号");Paragraph text4Paragtaph = newSec.addParagraph();//设置文本格式ParagraphStyle styleTitle4 = new ParagraphStyle(document);styleTitle4.setName("titleStyle4");styleTitle4.getCharacterFormat().setFontName("宋体");styleTitle4.getCharacterFormat().setFontSize(25f);styleTitle4.getCharacterFormat().setTextColor(Color.ORANGE);styleTitle4.getParagraphFormat().setHorizontalAlignment(HorizontalAlignment.Center);document.getStyles().add(styleTitle4);text4Paragtaph.applyStyle("titleStyle4");text4Paragtaph.appendText("关于***************************Text");DocxUtil.insertHeaderAndFooter(newSec);document.saveToFile("D:\\temp\\documentNew.docx", FileFormat.Docx_2013);}}

使用到的工具

import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.TextRange;
import java.awt.*;
import java.security.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;/*** TODO** @Description* @Author WL* @Date 2024/2/28**/
public class DocxUtil {// 动态创建表格public static void createTable(Section section, List<String> header, List<List<Object>> data, String title) {//添加表格Table table = section.addTable(true);//设置表格的行数和列数table.resetCells(data.size()+ 2, header.size());//设置第一行作为表格的表头并添加数据TableRow row = table.getRows().get(1);row.isHeader(true);row.setHeight(40);row.setHeightType(TableRowHeightType.Exactly);TableRow row3 = table.getRows().get(0);row3.isHeader(true);row3.setHeight(60);row3.setHeightType(TableRowHeightType.Exactly);row3.getCells().get(0).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);table.applyHorizontalMerge(0, 0, header.size() - 1);Paragraph p1 = row3.getCells().get(0).addParagraph();p1.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);TextRange range3 = p1.appendText(title);range3.getCharacterFormat().setFontName("仿宋_GB2312");range3.getCharacterFormat().setFontSize(12f);range3.getCharacterFormat().setTextColor(Color.black);range3.getCharacterFormat().setBold(true);for (int i = 0; i < header.size(); i++) {row.getCells().get(i).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);Paragraph p = row.getCells().get(i).addParagraph();p.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);TextRange range1 = p.appendText(header.get(i));range1.getCharacterFormat().setTextColor(Color.black);range1.getCharacterFormat().setFontName("仿宋_GB2312");range1.getCharacterFormat().setFontSize(12f);range1.getCharacterFormat().setBold(true);}//添加数据到剩余行try{for (int r = 0; r < data.size(); r++) {TableRow dataRow = table.getRows().get(r + 2);dataRow.setHeight(25);dataRow.setHeightType(TableRowHeightType.Exactly);dataRow.getRowFormat().setBackColor(Color.white);for (int c = 0; c < data.get(r).size(); c++) {dataRow.getCells().get(c).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);String s = "";if (data.get(r).get(c) instanceof Timestamp) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒s = df.format((Timestamp) (data.get(r).get(c)));} else if (data.get(r).get(c) instanceof Date) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒s = df.format((Date) (data.get(r).get(c)));} else if (data.get(r).get(c) == null) {s = "";} else {s = data.get(r).get(c).toString();}TextRange range2 = dataRow.getCells().get(c).addParagraph().appendText(s);range2.getCharacterFormat().setFontName("仿宋_GB2312");range2.getCharacterFormat().setFontSize(10f);}}}catch (Exception e){e.getMessage();
//            log.info("插入数据有异常");}section.addParagraph();}//生成页眉和页脚public static void insertHeaderAndFooter(Section section) {//分别获取section的页眉页脚HeaderFooter header = section.getHeadersFooters().getHeader();HeaderFooter footer = section.getHeadersFooters().getFooter();//添加段落到页眉Paragraph headerParagraph = header.addParagraph();//添加文字到页眉的段落TextRange text = headerParagraph.appendText("页眉测试");text.getCharacterFormat().setFontName("仿宋_GB2312");text.getCharacterFormat().setFontSize(10);text.getCharacterFormat().setItalic(true);headerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Left);//设置页眉段落的底部边线样式headerParagraph.getFormat().getBorders().getBottom().setBorderType(BorderStyle.Single);headerParagraph.getFormat().getBorders().getBottom().setLineWidth(1f);//添加段落到页脚Paragraph footerParagraph = footer.addParagraph();//添加Field_Page和Field_Num_Pages域到页脚段落,用于显示当前页码和总页数footerParagraph.appendField("page number", FieldType.Field_Page);footerParagraph.appendText("/");footerParagraph.appendField("number of pages", FieldType.Field_Num_Pages);footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);//设置页脚段落的顶部边线样式footerParagraph.getFormat().getBorders().getTop().setBorderType(BorderStyle.Single);footerParagraph.getFormat().getBorders().getTop().setLineWidth(1f);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_999020.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【YOLO v5 v7 v8 v9小目标改进】AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失

AFPN 渐进式特征金字塔网络&#xff1a;解决多尺度特征融合中&#xff0c;信息在传递过程丢失 提出背景AFPN 多尺度特征金字塔 非邻近层次的直接特征融合 自适应空间融合操作 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背景 论文&#xff1a;https:…

Codesys.运动控制电子齿轮

文章目录 一. 电子齿轮概念应用 二. 电子齿轮耦合功能块 2.1. MC_GearIn 2.2. MC_GearInPos 2.3. MC_GearOut 三. 电子齿轮案例 3.1. 样例介绍 3.2. 引入虚轴 3.3. 程序框架 3.4. 程序编写 3.5. 程序监控 一. 电子齿轮概念应用 在很多应用场景中有多个牵引轴每个牵引…

低代码与AIGC技术:重塑软件开发的新篇章

随着信息技术的飞速发展&#xff0c;软件开发行业正经历这一场革命性的变革。而在这场变革中&#xff0c;低代码与AIGC技术不可避免成为了引领行业发展的两大中坚力量。他们的存在不仅改变了传统的软件开发模式&#xff0c;还极大地提高了开发效率和便捷性。本文将对低代码与AI…

npm 操作报错记录1- uninstall 卸载失效

npm 操作报错记录1- uninstall 卸载失效 1、问题描述 安装了包 vue/cli-plugin-eslint4.5.0 vue/eslint-config-prettier9.0.0 但是没有使用 -d &#xff0c;所以想重新安装&#xff0c;就使用 uninstall 命令卸载&#xff0c;结果卸载了没反应&#xff0c;也没有报错&#xf…

✅ Windows11 系统 I 卡独显 A770 安装 深度学习 Pytorch 环境

&#x1f4cb; 文献参考 这里非常感谢知乎上的 ‘丢丢’ 的[**Windows系统下英特尔独显Pytorch的历程**] 为我提供了一开始的 I 卡安装想法&#xff01;但是文中并未介绍如何进行额外的环境变量操作问题&#xff0c;导致很多软件直接安装至系统盘&#xff0c;占用系统盘空间&am…

备考银行科技岗刷题笔记(持续更新版)

银行考试计算机部分复习 IEEE 802.11的帧格式 1.1 IEEE 802.11是什么&#xff1f; 802.11是国际电工电子工程学会&#xff08;IEEE&#xff09;为无线局域网络制定的标准。目前在802.11的基础上开发出了802.11a、802.11b、802.11g、802.11n、802.11ac。并且为了保证802.11更…

EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测

EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测 目录 EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GCN基于图卷积神经网络的数据分类预测 Matlab2023 2.多输入单输出的分类预测&#xf…

<商务世界>《第8课 Leads——MQL——SQL——商机——成交》

1 各种概念 英文缩写概念Traffic流量Leads潜在客户&#xff0c;销售线索&#xff1b;简称潜在线索MQLMarketing-Qualified Leads市场认可线索SQLSales-Qualified Leads销售认可线索OPPOpportunity商机Account成单客户 2 线索到商机 一般企业会把自身线索进行如下的划分&…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:LoadingProgress)

用于显示加载动效的组件。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 LoadingProgress() 创建加载进展组件。 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使…

运维知识点-Apache HTTP Server

Apache 介绍 介绍 Apache是一个开源的Web服务器软件&#xff0c;全称为Apache HTTP Server&#xff0c;由Apache软件基金会开发和维护。它是目前全球使用最广泛的Web服务器软件之一&#xff0c;占全球所有网络服务器的很大比例。Apache服务器具有跨平台的特性&#xff0c;可以…

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架) 大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而&#xff0c;对于非AI专家来说&#xff0c;制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。现有的提示…

【PyTorch][chapter 22][李宏毅深度学习]【无监督学习][ WGAN]【理论一】

简介&#xff1a; 2014年Ian Goodfellow提出以来&#xff0c;GAN就存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。从那时起&#xff0c;很多论文都在尝试解决&#xff0c;但是效果不尽人意&#xff0c;比如最有名的一个改进DCGAN依靠的是对…

【嵌入式高级C语言】9:万能型链表懒人手册

文章目录 序言单向不循环链表拼图框架搭建 - Necessary功能拼图块1 创建链表头信息结构体 - Necessary2 链表头部插入 - Optional3 链表的遍历 - Optional4 链表的销毁 - Necessary5 链表头信息结构体销毁 - Necessary6 获取链表中节点的个数 - Optional7 链表尾部插入 - Optio…

RFID-科技的“隐秘耳语者”

RFID-科技的“隐秘耳语者” 想象一下&#xff0c;你身处一个光线昏暗的环境中&#xff0c;周围的一切都被厚厚的阴影笼罩。这时&#xff0c;你需要识别并获取一个物体的信息&#xff0c;你会选择怎么做&#xff1f;是点亮灯光&#xff0c;用肉眼仔细观察&#xff0c;还是打开扫…

Haproxy实验搭建

1.yum本地源安装Haproxy [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# yum install haproxy -y2.yum网络源安装Haproxy 关闭防火墙和selinux ###先把安装包拖进来[rootlocalhost ~]# yum install rh-haproxy18-haproxy-1…

Linux操作系统的vim常用命令和vim 键盘图

在vi编辑器的命令模式下&#xff0c;命令的组成格式是&#xff1a;nnc。其中&#xff0c;字符c是命令&#xff0c;nn是整数值&#xff0c;它表示该命令将重复执行nn次&#xff0c;如果不给出重复次数的nn值&#xff0c;则命令将只执行一次。例如&#xff0c;在命令模式下按j键表…

[java基础揉碎]继承

为什么需要继承: > 继承就可以解决代码复用的问题 继承的基本介绍: 继承的使用细节: 1.子类继承了所有的属性和方法&#xff0c;但是私有属性和方法不能在子类直接访问&#xff0c;要通过公共的方法去访问 解决, 提供公共的方法返回: 2.子类必须调用父类的构造器,完成父…

Linux系统——LVS、Nginx、HAproxy区别

目录 一、LVS 1.负载均衡机制 1.1负载均衡——NAT模式 1.2负载均衡——DR模式 1.3负载均衡——隧道模式 1.4负载均衡——总结 2.LVS调度算法 3.LVS优点 4.LVS缺点 二、Nginx 1.传统基于进程或线程的模型 2.Nginx架构设计 3.Nginx负载均衡 4.Nginx调度算法 5.Ngi…

Jmeter 测试使用基本组件结构

JMeter简介 Apache组织开发的开源免费压测工具纯Java程序&#xff0c;跨平台性强源程序可以从网上下载高扩展性可对服务器、网络或对象模拟巨大的负载&#xff0c;进行压力测试可以用于接口测试支持分布式、多节点部署 JMeter安装 下载位置 官网https://jmeter.apache.org/ …

Java中SpringBoot四大核心组件是什么

一、Spring Boot Starter 1.1 Starter的应用示例 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency><groupId>org.mybatis.sprin…