摘要:像模版引擎一样,替换字符串中的 ${} 占位符,好处就是使用原生的API,不需要额外导包了。 public class A{ private static final String BRACE_LEFT = "{"; private static final String BRACE_RIGHT =
阅读全文
摘要:kettle 本身就是开源项目,直接下载全部源码,idea 打开即可。 难点 java 调用 kettle,难的不是怎么调用,而是如何解决依赖冲突, 直接将 kettle 整个项目,作为 maven 依赖,添加到我们的项目,会导致代码大范围报错。 解决思路 解决方案也很简单,就是直接从 spoon
阅读全文
摘要:业务场景:系统上有个磁盘,里面存放了很多文件,有没有什么办法,能快速地访问这些文件。 tomcat配置 修改 server.xml 配置。 缺点显而易见,只要知道地址,就可以下载文件,这会被检测为系统漏洞。 因为独立于系统之外,系统内部代码很难限制文件的访问。 <Host name="localho
阅读全文
摘要:import java.io.IOException; import java.io.InputStream; /** * @author Mr.css * @version 2022-09-26 18:13 */ public class Test { public static void mai
阅读全文
摘要:打印所有请求参数,进行接口调试的时候,设计前端界面的时候,会用到这些代码。 @RequestMapping(value = "/test") @ResponseBody public MResult test (HttpServletRequest request, @RequestParam Ma
阅读全文
摘要:Optional 的优势是:更友好的代码展现方式。 如果想追求极致的代码性能,Optional 显然不是优选,增加了额外的对象创建过程,这是有性能损耗的。 缺点就是容易被滥用,觉得新技术牛逼,强行附和,并没有体现出优势,反而让代码更加难以理解。 使用场景 以下面代码为例,像这样一堆互相嵌套的对象,该
阅读全文
摘要:基本原理:将业务上的对象,转换成 TreeNode 对象,然后通过 TreeBuilder 对象,将数据组装成树结构。 顾虑 不少程序员,会排斥这种设计,我们的 TreeNode 能兼容所有设计嘛? 显然不能,包括我自己,曾经也是反对这种设计的。 但是,如果不形成标准,很多更好的idea,都无法实施
阅读全文
摘要:简单写就 String.format("%04d", 3) 不过令我意外的是 StringBuilder + replace 效率居然更高 public class Test { public static String format2(int shortval) { String formatte
阅读全文
摘要:package cn.seaboot.commons.core; import cn.seaboot.commons.exception.BizException; import cn.seaboot.commons.lang.Warning; import javax.annotation.Nul
阅读全文
摘要:(如今已经看不到只用Map的项目了,可能不理解为什么会去争论这个,如果项目中不存在JavaBean,其实就可以不用反射技术) 在很长的时间里,一直以为使用反射技术效率低,使用反射创建对象,效率不如Map。这样的认知,导致一个问题,就是程序员畏惧使用反射解决问题,尤其是片面追求程序效率的开发人员。 这
阅读全文
摘要:方法引用是一种更为简洁的代码构造,它可以让你直接引用已有Java类的方法或者构造器,你可以通过使用::关键字来引用一个方法。 方法引用可以分为以下三种: 静态方法引用 实例方法引用 构造函数引用 下面是一些示例代码: // 静态方法引用 Function<String, Integer> funct
阅读全文
摘要:介绍:这就是个高级些的玩具,考验的是大家对于 “优先队列” 的理解。 功能:自定义 cache,达到设置的时间,自动清除缓存的数据。 package com.yt.test.callback2; import java.util.concurrent.Delayed; import java.uti
阅读全文
摘要:log4j.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/x
阅读全文
摘要:package com.yt.test.log4j.layout; import java.io.FileOutputStream; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.HTMLLayout; import
阅读全文
摘要:package com.yt.test.log4j.appender; import java.io.File; import java.io.FileOutputStream; import org.apache.log4j.ConsoleAppender; import org.apache.l
阅读全文
摘要:Level常用值: static Level DEBUG : 指出细粒度信息事件对调试应用程序是非常有帮助的。static Level INFO : 表明 消息在粗粒度级别上突出强调应用程序的运行过程。static Level WARN : 表明会出现潜在错误的情形。static Level ERR
阅读全文
摘要:显然,现在已经过了使用模版引擎画界面的时代,使用 beetl 纯粹是为了做消息模版。 beetl 的语法,相比于 freemarker,用起来会舒服很多; 开放系统权限,让客户自己配置消息模版,用户体验也不会太差; 依赖 <dependency> <groupId>com.ibeetl</group
阅读全文
摘要:运行独立的文件 java HelloWorld 指定 jar 目录,并运行文件 java -Djava.ext.dirs=C:\Users\ASUS\Desktop\demo\libs HelloWorld
阅读全文
摘要:1、该注解只能标记在 "有且仅有一个抽象方法" 的接口上。 2、JDK8接口中的静态方法和默认方法,都不算是抽象方法。 3、接口默认继承Java.lang.Object,所以如果接口显示声明覆盖了Object中方法,那么也不算抽象方法。 4、该注解不是必须的,加上该注解能够更好地让编译器进行检查。
阅读全文