默认在使用 OpenXML SDK 读写 Office 文件,如 PPT 或 Word 或 Excel 文件时,在关闭时调用 Dispose 将会自动将更改部分写入到文件。...Text = "逗比"; 根据 C# 最新的语法,在使用了 using var 将会在方法结束的时候,自动调用 Dispose 方法,和 using () 的写法差不多。...但是在调用 Dispose 方法时,将会发现,以上的更改自动保存到 Test.docx 文件里面 如果期望不自动保存,可以在 OpenSettings 设置不自动保存,如以下代码...true, new OpenSettings() { AutoSave = false }); 调用上面代码,将会在结束时自动释放文件占用...,而不将更改保存到文件 以上方法对于通用的 OpenXML 格式文件,如 docx 和 pptx 和 xlsx 等文件都可以设置在关闭时不自动保存 本文所有代码放在 github 和 gitee 欢迎访问
,通常还伴随Invalid bound statement (not found): cn.tedu.mybatis.UserMapper.addnew这样的提示信息,其中的addnew就表示这个抽象方法无法绑定...SQL语句,则在排查以上第2条和第3条时重点检查相关代码。...当尝试了更种推荐的解决方案都无效,确认代码无误时,可以尝试将项目Clean,甚至更新Maven(在Eclipse中,对项目点右键,选择Maven > Update Project,如果使用的是Intellij
你可以使用 dynamic 来定义一个变量或者字段,随后你可以像弱类型语言一样调用这个实例的各种方法,就像你一开始就知道这个类型的所有属性和方法一样。...但是,使用不当又会遇到各种问题,本文收集使用过程中可能会遇到的各种问题,帮助你解决掉它们。...接下来讲述使用 dynamic 过程中可能会遇到的问题和解决方法。 编译错误:缺少编译器要求的成员 你初次在你的项目中引入 dynamic 关键字后,会出现编译错误,提示 “缺少编译器要求的成员”。...dynamic 访问的属性或者方法的名称。...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
:尽量不要在循环体内实例化新对象 资源关闭 :Connect,Result,Statement等使用之后确保关闭掉 2、安装步骤: 通过 File > Settings > Plugins > Marketplace...四、FindBugs: 1、整体介绍: FindBugs 侧重于发现代码中存在的bug,如运行时错误检测(空指针检查、未合理关闭资源、字符串相同判断错(==,而不是equals)等),它可以简单高效全面地帮助我们发现程序代码中存在的...to clean up stream or resource on checked exception 这种方法可能无法清除(关闭,处置)一个流,数据库对象,或其他资源需要一个明确的清理行动,解决方法...:流的关闭都写在finally里面 4.6、Malicious code vulnerability 恶意破坏代码相关: 错误信息 说明 May expose internal representation...的话,使用 PMD、Findbugs、SonarLint 相互补充: PMD 自定义能力强,用来自定义项目BUG规则非常好用 Findbugs 找 BUG 能力很强,我们拿找到的BUG给新员工培训也很好
我通过问度娘,给出的方法无非就是在面板开启CDN,或者通过修改日志格式,再或者通过加入下面这个获取真实IP: set_real_ip_from 0.0.0.0/0;real_ip_header X-Forwarded-For...; 根据我的实验,通过修改日志格式的方法确实能在网站日志里看到真实IP,但是防火墙里默认的还是CDN或者其中转IP,这样的话,在防火墙里设置的一些拦截IP的规则就没用了,还会严重影响我们网站业务的进行。...通过查看火山引擎文档: 这里给出了部分请求头以及通过nginx获取客户端源IP的方法,但我查看后还是通过修改日志格式的方法获取ip,那这样相当于没解决。...于是我修改了一下网上获取请求头的规则,完美解决了防火墙无法获取真实IP。 将下面代码添加进nginx的http字段里即可: 此处内容已隐藏,请评论后刷新页面查看.
; e.printStackTrace(System.err); } finally { // 无论是否发生异常,都需要确保关闭流(如果流已成功打开...; } catch (IOException e) { System.err.println("\n关闭文件流时发生错误!")...正确解决方案:使用类加载器 (ClassLoader) 的 getResourceAsStream() 方法。 ClassLoader 提供了一种与物理文件系统解耦的方式来访问类路径下的资源。...程序可能无法正常运行。")...健壮的I/O操作: 始终使用 try-with-resources 确保流被正确关闭。 提供清晰、有用的错误日志和用户提示。
3、使用说明:可以看到基本都是一些缩进啥的编码规范,可以不用太关注三、PMD1、整体介绍:PMD侧重面向安全编码规则,且具备一定的数据流分析和路径分析能力,能力比CheckStyle稍微强点,并且 PMD...支持自定义规则,PMD可以直接使用的规则包括以下内容:潜在的bug: 空的try/catch/finally/switch语句未使用的代码(Dead code): 未使用的变量、参数、私有方法等可选的代码...因为在实际工作中,可能需要根据实际情况自定义检测规则,就可以通过这里导入,如果要使用它,需要在启动PMD进行检测时选择该自定义规则。...四、FindBugs1、整体介绍:FindBugs 侧重于发现代码中存在的bug,如运行时错误检测(空指针检查、未合理关闭资源、字符串相同判断错(==,而不是equals)等),它可以简单高效全面地帮助我们发现程序代码中存在的...SonarLint 规则丰富,比 Findbugs 能覆盖到更全的场景"Alibaba Java Coding Guidelines安装使用教程""CheckStyle自定义规则配置方法""PMD插件检测
随着业务的发展,系统会越来越庞大,原本简单稳定的功能,可能在不断迭代后复杂度上升,潜在的风险也随之暴露,导致最终服务不稳定,造成业务价值的损失。...3、使用说明: 可以看到基本都是一些缩进啥的编码规范,可以不用太关注 三、PMD 1、整体介绍: PMD 侧重面向安全编码规则,且具备一定的数据流分析和路径分析能力,能力比 CheckStyle 稍微强点...循环体创建新对象:尽量不要在循环体内实例化新对象 资源关闭:Connect,Result,Statement 等使用之后确保关闭掉 2、安装步骤: 通过 File > Settings > Plugins...因为在实际工作中,可能需要根据实际情况自定义检测规则,就可以通过这里导入,如果要使用它,需要在启动 PMD 进行检测时选择该自定义规则。...四、FindBugs 1、整体介绍: FindBugs 侧重于发现代码中存在的 bug,如运行时错误检测(空指针检查、未合理关闭资源、字符串相同判断错(==,而不是 equals)等),它可以简单高效全面地帮助我们发现程序代码中存在的
三、PMD 1、整体介绍: PMD侧重面向安全编码规则,且具备一定的数据流分析和路径分析能力,能力比CheckStyle稍微强点,并且 PMD 支持自定义规则,PMD可以直接使用的规则包括以下内容: 潜在的...bug:空的try/catch/finally/switch语句 未使用的代码(Dead code):未使用的变量、参数、私有方法等 可选的代码:String/StringBuffer的滥用 复杂的表达式...因为在实际工作中,可能需要根据实际情况自定义检测规则,就可以通过这里导入,如果要使用它,需要在启动PMD进行检测时选择该自定义规则。...另外,IDEA 正版激活方法,可参考我之前分享的教程:https://www.javastack.cn/intellij-idea-reactivation-succeed/ 四、FindBugs: 1...五、SonarLint: 1、整体介绍: sonar 比 Findbugs 高了一个层级,它不仅关注常规静态BUG,还关注到了如代码质量、包与包、类与类之间的依赖情况,代码耦合情况,类、方法、文件的复杂度
3、使用说明: 图片 可以看到基本都是一些缩进啥的编码规范,可以不用太关注 三、PMD 1、整体介绍: PMD侧重面向安全编码规则,且具备一定的数据流分析和路径分析能力,能力比CheckStyle稍微强点...,并且 PMD 支持自定义规则,PMD可以直接使用的规则包括以下内容: 潜在的bug:空的try/catch/finally/switch语句 未使用的代码(Dead code):未使用的变量、参数、私有方法等...因为在实际工作中,可能需要根据实际情况自定义检测规则,就可以通过这里导入,如果要使用它,需要在启动PMD进行检测时选择该自定义规则。...四、FindBugs: 1、整体介绍: FindBugs 侧重于发现代码中存在的bug,如运行时错误检测(空指针检查、未合理关闭资源、字符串相同判断错(==,而不是equals)等),它可以简单高效全面地帮助我们发现程序代码中存在的...BUG 的话,使用 PMD、Findbugs、SonarLint 相互补充: PMD 自定义能力强,用来自定义项目BUG规则非常好用 Findbugs 找 BUG 能力很强,我们拿找到的BUG给新员工培训也很好
salesOrderExport,异常:", e); throw new RuntimeException("导出异常,请稍后重拾"); } finally { try { // 关闭流...使用Lists.partition方法将订单列表分割成多个子列表,每个子列表由一个线程处理,这里每5个订单一个线程。...模板文件通过类加载器的getResourceAsStream方法加载,便维护。将多个Excel文件打包成一个ZIP文件,方便用户下载和管理。...资源清理:方法执行完毕后,及时关闭打开的文件流和删除临时生成的Excel文件和目录,避免了资源泄露。...使用try-with-resources和try-catch-finally来确保资源的正确关闭和清理。错误处理:在方法执行过程中,对可能出现的异常进行了捕获和处理,确保服务的健壮。
只寻找可能存在bug的地方,不注重样式或者格式,它试图只寻找真正的缺陷或者潜在的性能问题。主要包括: 空指针; 没有合理关闭资源; 字符串相等判断错(用了==而没用equals)等。...Bad pratice: 编程的坏习惯,主要是命名问题,比如类名最好以大写开头,字符串不要使用等号不等号进行比较,可能会有异常最好用try-catch包裹的代码,方法有返回值但被忽略等等,这些如果不想改可以直接忽略...在类型转换的时候,我们应该为类型转换提供一个安全的转换方法。比如使用switch的时候没有提供default。多余的空检查,就是不可能为空的值,增加了不为空判断,这是没有必要的。...findBugs的问题解决了,但是引入了其他问题,每次 Open In -> Explorer 的时候都无法正确打开文件所在目录。...解决方案二: 如果对Open In -> Explorer使用频率比较高的朋友,可以考虑另外一种比较笨拙的方法。
不遵循代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。2....糟糕的复杂度分布文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。4....注释不足或者过多没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降;而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。6....:2.1.可能导致空指针异常的问题 (对象在进行使用前没有加空的判断)2.2.可能导致内存泄漏的问题, 在try catch块里面,直接使用e.printStackTrace()将堆栈信息打印到内存的2.3....可能导致的漏洞 : 成员变量使用public定义的还有诸如 : 流等未关闭或者是非正常关闭都能够检测出来!
会报错 ,new MemberUsageScanner() //设置 member 扫描器,否则 getMethodUsage 会报错, 不推荐使用,有可能会报错...最后调用了类加载器的getResourceAsStream()方法来加载文件资源 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream...fileNameLists.add(zipEntry.getName()); } } //关闭流...fileNameLists.add(zipEntry.getName()); } } //关闭流...out.write(_byte, 0, len); } //将读取数据刷新到硬盘上 //然后关闭输出流
FindBugs的使用 1 FindBugs简介 FindBugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。...检测出的bugs可以到《详解FindBugs的各项检测器》中查找对应原因。 4 FindBugs可以检测的内容 FindBugs提供了35个检测器来检测字节码中可能的缺陷。...因为Java代码在编译时解析重载方法的方式,在运行时使用的几乎总是在对象中定义的这个版本的方法,而不是在Bob中定义的那一个(除非显式将equals()方法的参数强制转换为Bob类型)。...因此,当这个类的一个实例放入到类集合中的任何一个中时,使用的是Object.equals()版本的方法,而不是在Bob中定义的版本。...4.16异常检查 针对异常的检查:不应该声明该方法而抛出java.lang.Exception异常,不应当将异常用于流控制,不应该捕获Throwable,等等。
FindBugs无法分析程序中的业务逻辑Bug,所以说业务逻辑上的Bug还得需要开发人员根据具体的业务需求去查找。 ...FindBugs的基本使用 FindBugs安装完成之后需要重启AndroidStudio,重启之后会看到FindBugs的界面窗口,如下图: ?...Multithreaded correctness 多线程的正确性多线程编程时,可能导致错误的代码,下面列举几个: ESync:空的同步块,很难被正确使用。...MWN:错误使用notify(),可能导致IllegalMonitorStateException异常;或错误的使用wait()。...Internationalization 国际化 当对字符串使用upper或lowercase方法,如果是国际的字符串,可能会不恰当的转换。
前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档、导出模版等),本地开发时可以正常读取 ,但是,当我们打成...背景 这个问题是在一次使用freemarker模版引擎导出word报告时发现的。...在本地调试时,我使用如下方式读取: import org.springframework.util.ResourceUtils; public static void main(String[]...解决 虽然我们不能用常规操作文件的方法来读取jar包中的资源文件docxTemplate.docx,但可以通过Class类的getResourceAsStream()方法,即通过流的方式来获取 :...extends ZipEntry> zipEntrys = zipFile.entries(); // todo 记得关闭流 } 结果 打包、发布至beta环境,亲测可用,问题完美解决
将.class文件转换为.java文件的方法有两种: 方法一:使用Java反编译工具 下载并安装Java反编译工具,比如JD-GUI、Fernflower等。...方法二:使用Java反射机制 使用Java反射机制,通过Class类的getResourceAsStream()方法获取.class文件的输入流。...// 获取要转换的.class文件的输入流 InputStream inputStream = ClassToJavaConverter.class.getResourceAsStream...("YourClass.class"); // 创建输出流,将字节码写入.java文件 FileOutputStream outputStream =...= -1) { outputStream.write(buffer, 0, bytesRead); } // 关闭输入流和输出流
Findbugs运用Apache BCEL 库分析类文件,而不是源代码,将字节码与一组缺陷模式进行对比以发现可能的问题。...Dodgy:Findbugs团队认为该类型下的问题代码导致bug的可能性很高。...数据流分析:它不仅分析单个代码文件,还跟踪应用程序的数据流。这有助于找到更复杂的漏洞,如未经验证的用户输入在应用程序中的传播路径。 漏洞修复建议:发现潜在的安全漏洞时,它会为开发人员提供修复建议。...使用Fortify扫描代码的结果: 一般推荐它跟Jenkins集成,定期扫描项目中test分支中的代码安全问题。 6 写单元测试 有些小伙伴可能会问:写单元测试可以减少代码的BUG? 答案是肯定的。...看似节省了很多单元测试的时间,但其实后面修复BUG的时间可能会花费更多。 比较推荐的自测方式是:一步一个脚印。 比如:你写了一个工具类的一个方法,就测试一下。
LogUtil,可以统一做到测试服打开本地日志,线上服关闭日志;KeyboardUtil 方便使用者控制键盘的弹出隐藏等操作。...FindBugs 检查类和 Jar 文件,不是通过分析类文件的形式或结构来分析程序,而是使用 Visitor 模式,将字节码与一组缺陷模式进行对比以发现可能的问题。而这些问题比如如下: 1....因此,上述代码很可能是程序猿的 bug。为此 FindBugs 能找出这种问题 2. 空指针示例 ?...image 上述最后一行代码,很明显在执行的时候会发生空指针异常,这里因为 FindBugs 无法知道变量 strMaps 是否确实有 aaa 这个 key,为此这里会检查出错误。 3....除了和 FindBugs 重复的纯 java 代码检查之外,Lint 能检查很多其他工具无法检查的内容,也更贴合 Android: ?