1.引入依赖 <!-- https://mvnrepository.com/artifact/dom4j/dom4j --> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> 2.基本操作 2.1创建一个文档对象 Document document = DocumentHelper.createDocument(); 2.2创建一个节点 Element root = document.addElement("decision-table"); 2.3给节点添加属性值 root.addAttribute("num","100"); 2.4添加值到xml标签中 root.setText("标签内容"); 2.5将document对象转换成字符串 root.asXML(); 2.6将文档内容写入到xml文件 x.... 有更新! dom4j操作xml文件 程序人生
1.代理模式 代理模式给原对象提供了一个代理对象,代理对象可以访问原对象的引用,扩展功能,符合设计模式的开闭原则(可以扩展,禁止修改内部功能)。 代理模式有静态代理、动态代理和cglib代理,静态代理一个代理只对应了一个原对象,动态代理利用反射机制,一个代理可以对应多个原对象,cglib代理也可对应多个原对象,动态代理在运行时动态创建一个类实现原对象的接口作为代理类来使用,cglib代理在运行时动态创建一个类继承原对象来带使用。 2.静态代理 接口 public interface User { void sayHello(); } 接口实现 public class TeacherImpl implements User { public void sayHello() { System.out.println("I'm teacher"); } } 代理类(代理类中,我们用代理类的方法sayHello来访问原对象User的sayHello()方法,并且扩展了该方法,这其实就是代理的主要作用--在不修改源代码的情况下,扩展服务功能) public class UserProxy .... 有更新! 代理模式的Java实现 程序人生
1.vue中配置websocket连接 data中添加属性 socket: null, 配置websocket连接信息 if (typeof (WebSocket) === 'undefined') { this.$message({ message: '您的浏览器不支持socket', type: 'error' }) } else { // 实例化socket this.socket = new WebSocket('ws://10.111.106.73:80//ws/webSocketServer.do') // 监听socket连接 this.socket.onopen = this.openSocket // 监听socket错误信息 this.socket.onerror = this.errorSocket // 监听socket消息 this.socket.onmessage = this.getMessageSocket // 关闭socket消息 this.socket.onclose = this.closeSocket } 配置连接打开关闭和获取信息的方法 .... 有更新! nginx配置websocket连接 程序人生
1.ftp和ftps ftp文件传输协议是应用层协议,用于传输文件信息,linux上需要安装vsftpd才能使用(明文传输) ftps为FTP协议和数据通道添加了SSL功能,可以对传输信息加密 2.ftp传输文件 引入maven依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> 代码,此处将传入的文件参数改为MultipartFile类型,方便前端传递文件数据,再转为File对象(建立临时文件,上传完成会删除),如果需要可以自己改为文件路径 package com.wyl.ppa.utils; import java.io.*; import java.ut.... 有更新! Java使用FTP、FTPS上传文件 程序人生
1.beetlsql案例 delete from a where a.org_id_ = #orgId# and index_id_ in ( @for(id in indexIds){ #id# #text(idLP.last?"":",")# @} ) sql中orgId为一个普通变量,indexIds为一个数据集合 @for(id in indexIds){@}遍历了集合中的每一个元素 #id#使用这些元素,#text中做了一个正则表达式的判断,如果当前元素是最后一个元素,则返回空字符串,不是的花就返回逗号,用于进行字符串拼接 2.其他操作 判断集合时候为空使用 isEmpty(indexIds) isEmpty除了判断集合为空,还可以用来判断字符串时候为空,为空则返回true,否则返回false 有更新! beetlsql 遍历集合做in查询 程序人生
1.标签设置 添加标签template,slot-scope设置为scope,slot设置为menu 内部就可以添加按钮和自己想要的属性了 <avue-crud ref="thresholdSetTable" :data="pageData" :option="option" :page.sync="page" @selection-change="selectionChange" @size-change="sizeChange" @current-change="currentChange" @search-change="searchChange" @search-reset="searchReset" > <template slot="search"> <el-form-item label="指标名称"> <el-input v-model="searchForm.indexName" placeholder="请输入指标名称" size="small" /> </el-form-item> </templa.... 有更新! avue.js表格添加行内操作按钮 程序人生