首页
归档
友链
关于
Search
1
网易云音乐黑胶会员月月免费赠送
3,581 阅读
2
十年之约RSS聚合订阅服务上线
3,016 阅读
3
工资发放日的区别
2,632 阅读
4
rsyslogd内存占用过高解决方案
2,412 阅读
5
Nginx反代MinIO后,上传文件签名异常
2,225 阅读
零碎
标本
码海
工具
其他
登录
Search
标签搜索
北京
摄影
生活
旅行
Java
学习笔记
教程
Linux
服务器
软件
日记
SpringBoot
Windows
服务
数据库
福利
Spring
系统
SQL
docker
萧瑟
累计撰写
198
篇文章
累计收到
1,407
条评论
首页
栏目
零碎
标本
码海
工具
其他
页面
归档
友链
关于
搜索到
198
篇与
萧瑟
的结果
2021-05-29
Java poi设置页脚页码奇偶数不同展示
最近遇到一个问题,就是导出word设置页脚的页码且奇偶数不同,效果如下。 贴一下代码,记录一下。/** * 创建页脚 * * @param document doc对象 * @throws IOException * @throws NoSuchFieldException * @throws IllegalAccessException */ public static void createFooter(XWPFDocument document) throws IOException, NoSuchFieldException, IllegalAccessException { Field _settings = XWPFDocument.class.getDeclaredField("settings"); _settings.setAccessible(true); XWPFSettings xwpfsettings = (XWPFSettings) _settings.get(document); Field _ctSettings = XWPFSettings.class.getDeclaredField("ctSettings"); _ctSettings.setAccessible(true); org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSettings ctSettings = (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSettings) _ctSettings.get(xwpfsettings); ctSettings.addNewEvenAndOddHeaders(); XWPFFooter footer = document.createFooter(HeaderFooterType.DEFAULT); //奇数 XWPFParagraph paragraph = footer.createParagraph(); paragraph.setAlignment(ParagraphAlignment.RIGHT); XWPFRun run; run = paragraph.createRun(); run.setText("— "); CTFldChar fldChar = run.getCTR().addNewFldChar(); fldChar.setFldCharType(STFldCharType.Enum.forString("begin")); setXWPFRunStyle(run, "宋体", 14); CTText ctText = run.getCTR().addNewInstrText(); ctText.setStringValue("PAGE \\* MERGEFORMAT"); ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve")); setXWPFRunStyle(run, "宋体", 14); fldChar = run.getCTR().addNewFldChar(); fldChar.setFldCharType(STFldCharType.Enum.forString("end")); run.setText(" —"); //偶数 XWPFParagraph paragraph1 = document.createFooter(HeaderFooterType.EVEN).createParagraph(); paragraph1.setAlignment(ParagraphAlignment.LEFT); XWPFRun run1; run1 = paragraph1.createRun(); run1.setText("— "); CTFldChar fldChar1 = run1.getCTR().addNewFldChar(); fldChar1.setFldCharType(STFldCharType.Enum.forString("begin")); setXWPFRunStyle(run1, "宋体", 14); CTText ctText1 = run1.getCTR().addNewInstrText(); ctText1.setStringValue("PAGE \\* MERGEFORMAT"); ctText1.setSpace(SpaceAttribute.Space.Enum.forString("preserve")); setXWPFRunStyle(run1, "宋体", 14); fldChar1 = run1.getCTR().addNewFldChar(); fldChar1.setFldCharType(STFldCharType.Enum.forString("end")); run1.setText(" —"); } /** * 设置页脚的字体样式 * * @param r1 段落元素 * @param font 字体 * @param fontSize 字体大小 */ private static void setXWPFRunStyle(XWPFRun r1, String font, int fontSize) { r1.setFontSize(fontSize); CTRPr rpr = r1.getCTR().isSetRPr() ? r1.getCTR().getRPr() : r1.getCTR().addNewRPr(); CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts(); fonts.setAscii(font); fonts.setEastAsia(font); fonts.setHAnsi(font); }参考文档: poi设置word奇偶页不同-segmentfault
2021年05月29日
411 阅读
0 评论
2021-05-27
Java 基础类型互相转换
Java 基础类型互相转换,int,String 转Integer、String 转Integer、String、Integer转为int、Integer转换为float, double, long、所有类型转String
2021年05月27日
204 阅读
2 评论
2021-05-24
yml基本语法
YML是什么YAML (YAML Aint Markup Language)是一种标记语言,通常以.yml或者.yaml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。YML的优点YAML易于人们阅读。YAML数据在编程语言之间是可移植的。YAML匹配敏捷语言的本机数据结构。YAML具有一致的模型来支持通用工具。YAML支持单程处理。YAML具有表现力和可扩展性。YAML易于实现和使用。YML语法1.约定 k: v 表示键值对关系,冒号后面必须有一个空格使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的大小写敏感缩进时不允许使用Tab键,只允许使用空格。松散表示,Java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。2.键值关系 (以Java语言为例,其它语言类似)对于键与值主要是看能否表示以下内容。普通的值(数字、字符串、布尔)、日期、对象、数组、集合等。1) 普通值(字面量)k: v:字面量直接写;字符串默认不用加上单引号或者双绰号;“”: 双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据name1: zhangsan name2: 'zhangsan \n lisi' name3: "zhangsan \n lisi" age: 18 flag: true2)日期date: 2019/01/013)对象(属性和值)、Map(键值对)在下一行来写对象的属性和值的关系,注意缩进people: name: zhangsan age: 20行内写法:people: {name:zhangsan,age: 20}4)数组、list、set用- 值表示数组中的一个元素pets: - dog - pig - cat行内写法:pets: [dog,pig,cat]5)数组对象、list对象、set对象peoples: - name: zhangsan age: 22 - name: lisi age: 20 - {name: wangwu,age: 18}6)Java代码示例Java代码(省略get,set方法)public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Dog> lists; private Dog dog; private String[] arr; } public class Dog { private String name; private Integer age; }对应的ymlperson: boss: false maps: k1: v1 k2: 14 lists: - name: d1 age: 2 - name: d2 age: 3 - {name: d3,age: 4} birth: 2017/12/15 dog: name: p_dog age: 15 age: 13 last-name: 张三 arr: [s1,s2,s3]3.文档块对于测试环境,预生产环境,生产环境可以使用不同的配置,如果只想写到一个文件中,yml与是支持的,每个块用----隔开server: port: 8081 spring: profiles: active: prod #激活对应的文档块 --- server: port: 8083 spring: profiles: dev #指定属于哪个环境 --- server: port: 8084 spring: profiles: prod #指定属于哪个环境
2021年05月24日
234 阅读
0 评论
2021-05-23
统信UOS个人版试用体验
前段时间刚刚在统信商场购买了珍藏版安装套件,也顺手将很早之前买的二手微软 Surface Pro 3系统重做了一下,安装上了统信USO个人版。
2021年05月23日
1,004 阅读
4 评论
2021-05-23
SpringBoot yml配置文件注入List和Map
SpringBoot 在yml配置文件注入List和Map,可动态修改,方便快速。
2021年05月23日
716 阅读
0 评论
2021-05-21
Java Spring @autowired和@resource注解的区别
区别1、@Autowired注解由Spring提供,只按照byType注入;@resource注解由J2EE提供,默认按照byName自动注入。2、@Autowired默认按类型进行装配,@Resource默认按照名称进行装配。Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解。如:@Resource、@PostConstruct及@PreDestroy@Autowired由Spring提供,只按照byType注入@Resource由J2EE提供,默认按照byName自动注入@Resource有两个重要的属性:name和typeSpring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。@Resource装配顺序:(1)如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常(2)如果指定了name,则从Spring上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常(3)如果指定了type,则从Spring上下文中找到类型匹配的唯一bean进行装配,找不到或找到多个,都抛出异常(4)如果既没指定name,也没指定type,则自动按照byName方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入。使用区别(1)@Autowired与@Resource都可以用来装配bean,都可以写在字段或setter方法上(2)@Autowired默认按类型装配,默认情况下必须要求依赖对象存在,如果要允许null值,可以设置它的required属性为false。如果想使用名称装配可以结合@Qualifier注解进行使用。(3)@Resource,默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行名称查找。如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。推荐使用@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与Spring的耦合。
2021年05月21日
225 阅读
0 评论
2021-05-21
Java Map中forEach小结
HashMapHashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。AbstractMap实现了Map接口,Map接口里面有一个forEach方法。官方解释对此映射中的每个条目执行给定操作,直到所有条目已处理或操作引发异常。除非由实现类指定,操作将在入口集迭代的顺序(如果指定了迭代顺序)。操作引发的异常将中继到调用方。解读使用了try catch 抛出的异常为ConcurrentModificationException,标示在线程并发进行读写的时候会出现异常,即,不支持并发操作。使用方法Map<Object, Object> map = new HashMap<>(); map.put("name", "xiaose"); map.put("gender", "男"); map.put("phone", "18888888888"); map.put(null, null); //1.Map的迭代 // 通用的Map迭代方式 System.out.println("==============Map的迭代======================"); for (Map.Entry<Object, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } System.out.println("===================================="); // JDK8的迭代方式 map.forEach((key, value) -> { System.out.println(key + ":" + value); });输出内容==============Map的迭代====================== null:null gender:男 phone:18888888888 name:xiaose ==================================== null:null gender:男 phone:18888888888 name:xiaose
2021年05月21日
248 阅读
0 评论
2021-05-13
统信 UOS 限量版系统盘到货了
4月26日刷RSS订阅的时候,看到统信官方发布2021 年牛年统信 UOS 个人版系统安装套件,拼团“交个朋友”走心价 36.9 元。充满好奇的我,随便拼了一个团,说是五一之后发货,看着闲聊群内的人陆陆续续收到了货,而我的却遥遥无期。终于客服小姐姐很给力,每天拼命发快递,终于轮到了我。今天下午终于收到顺丰快递的包裹,统信UOS个人限量版U盘终于到了,晚上到家一起开个箱,简单记录一下。包装看起来还是很精美的,也很简约,让我们打开看看吧。迎面而来的是一张小卡片,简单介绍了U盘内容,说是家庭版,群里也有最新家庭版(内测版)指令和内测安装包。翻开小卡片,背面写了一封简要的信,欢迎体验统信UOS的信。让我们看一下U盘的样子。看样子我是第两千多名,哈哈,感觉还不错,很有收藏意义。等周末安装一下系统,再体验一波。家庭版特性1、一键安装UOS系统:无需分区,全自动安装,复制原系统资料,支持双系统自由切换。2、生态融合多模多态:一站式融合多平台应用,支持打开常用的安卓和Wine应用。3、统一账号快捷登录:支持快速注册Union ID、微信扫码登录,无需输入账号密码。4、跨屏协同传输工具:电脑与手机跨屏幕互通,支持同一WiFi网络下的大文件互传。5、桌面视觉体验优化:新拟态UI设计,新增多张主题壁纸,重构应用商店,让交互体验更自然。家庭版常见问题Q1:家庭版和个人版有什么区别?A:家庭版是个人版的升级版本,在应用生态、账号体系、跨屏协同、视觉设计等方面都有重大改进。Q2:可以用虚拟机安装体验吗?A:可以的。Q3:内测结束后,系统还能继续使用吗?A:可以的,后续可以正常更新升级。Q4:个人版可以直接升级为家庭版吗?A:目前为内测阶段,直升方式还在优化改进中,请使用镜像安装方式体验。
2021年05月13日
413 阅读
4 评论
2021-05-07
rm -rf 后的常见处理
删库跑路吧~
2021年05月07日
308 阅读
0 评论
2021-05-04
网易云音乐黑胶会员月月免费赠送
最近看珂泽在博客送黑胶会员,刚好我也有这个特权,每个月也发在群里,但是群友不是很给力,基本都没领完,博客也记录一下分享,有需要的可以领个玩玩。也算是一份福利吧。{tabs}{tabs-pane label="2025年"}{timeline}{timeline-item color="#0x73c9"}04月:领取地址{/timeline-item}{timeline-item color="#0b83d9"}03月:领取地址{/timeline-item}{timeline-item color="#59bd6d"}02月:领取地址{/timeline-item}{timeline-item color="#9a37c4"}01月:领取地址{/timeline-item}{/timeline}{/tabs-pane}{tabs-pane label="2024年"}{timeline}{timeline-item color="#80ffbf"}12月:领取地址{/timeline-item}{timeline-item color="#aa80ff"}11月:领取地址 {/timeline-item}{timeline-item color="#0044cc"}10月:领取地址 | 红包贴贴 {/timeline-item}{timeline-item color="#a64d79"}09月:领取地址 | 红包贴贴 {/timeline-item}{timeline-item color="#F2A450"}08月:领取地址{/timeline-item}{timeline-item color="#F4A460"}07月:领取地址(领完了) {/timeline-item}{timeline-item color="#006400"}06月:领取地址{/timeline-item}{timeline-item color="#d6f5f5"}05月:领取地址{/timeline-item}{timeline-item color="#FF69B4"}04月:领取地址{/timeline-item}{timeline-item color="#3A6B9E"}03月:领取地址{/timeline-item}{timeline-item color="#FFD700"}02月:领取地址{/timeline-item}{timeline-item color="#33F199"}01月:领取地址{/timeline-item}{/timeline}{/tabs-pane}{tabs-pane label="2023年"}{timeline}{timeline-item color="#9f0e12"}12月:领取地址{/timeline-item}{timeline-item color="#2266AA"}11月:领取地址{/timeline-item}{timeline-item color="#2266AA"}10月:领取地址{/timeline-item}{timeline-item color="#e964b3"}09月:领取地址{/timeline-item}{timeline-item color="#e964b3"}08月:领取地址(已领取完){/timeline-item}{timeline-item color="#FFCC66"}07月:领取地址(已领取完){/timeline-item}{timeline-item color="#77CCBB"}06月:领取地址{/timeline-item}{timeline-item color="#ae39e5"}05月:领取地址{/timeline-item}{timeline-item color="#2F911E"}04月:领取地址{/timeline-item}{timeline-item color="#2F911E"}03月:领取地址{/timeline-item}{timeline-item color="#2F911E"}02月:领取地址{/timeline-item}{timeline-item color="#33F199"}01月:领取地址(已领取完){/timeline-item}{/timeline}{/tabs-pane}{tabs-pane label="2022年"}{timeline}{timeline-item color="#19be6b"}12月:领取地址(已领取完){/timeline-item}{timeline-item color="#19be6b"}11月:领取地址(已领取完){/timeline-item}{timeline-item color="#19be6b"}10月:领取地址(已领取完){/timeline-item}{timeline-item color="#ed4014"}09月:领取地址(已领取完){/timeline-item}{timeline-item color="#6666CC"}08月:领取地址(已领取完){/timeline-item}{timeline-item color="#43F199"}07月:领取地址(已领取完){/timeline-item}{timeline-item color="#535199"}06月:领取地址(已领取完){/timeline-item}{timeline-item color="#345699"}05月:领取地址(已领取完){/timeline-item}{timeline-item color="#234199"}04月:领取地址(已领取完){/timeline-item}{timeline-item color="#1F2199"}03月:领取地址(已领取完){/timeline-item}{timeline-item color="#99CCFF"}02月:工作原因忘记分享{/timeline-item}{timeline-item color="#33F199"}01月:工作原因忘记分享{/timeline-item}{/timeline}{/tabs-pane}{tabs-pane label="2021年"} {timeline}{timeline-item color="#19be6b"}12月:领取地址(已领取完){/timeline-item}{timeline-item color="#19be6b"}11月:领取地址(已领取完){/timeline-item}{timeline-item color="#19be6b"}10月:领取地址(已领取完){/timeline-item}{timeline-item color="#ed4014"}09月:领取地址(已领取完){/timeline-item}{timeline-item color="#33F199"}08月:领取地址(已领取完){/timeline-item}{timeline-item color="#33F199"}07月:领取地址(已领取完){/timeline-item}{timeline-item color="#33F199"}06月:领取地址(已领取完){/timeline-item}{timeline-item color="#33F199"}05月:领取地址(已领取完){/timeline-item}{timeline-item color="#33F199"}04月:领取地址(已领取完){/timeline-item}{timeline-item color="#33F199"}03月:领取地址(已领取完){/timeline-item}{timeline-item color="#CC6600"}02月:领取地址(已领取完){/timeline-item}{timeline-item color="#663366"}01月:领取地址(已领取完){/timeline-item}{/timeline}{/tabs-pane}{/tabs}如果领完的话可以前往以下博客地址继续领取:柒陆零壹 Zeruns's BlogTomyJanJunFreesun
2021年05月04日
3,581 阅读
37 评论
1
...
15
16
17
...
20