slf4j

java利用Freemarker模板生成docx格式的word文档(全过程)

强颜欢笑 提交于 2020-08-07 19:32:39
参考: https://my.oschina.net/u/3737136/blog/2958421?tdsourcetag=s_pcqq_aiomsg 具体思路 1.创建一个docx文档模板,其中的英文是根据自己需要填充的内容。 2.把docx文档修改为ZIP格式(修改.docx后缀名为.zip),然后把zip解压到当前目录 3.修改word目录下document.xml文档,把如下原来是time改为${time},改好后放入项目中,用于后边内容填充。【有时候一个单词可能会被拆分,自己要做相应的调整】 <#list minuteList as minute></#list> 可用于循环填充,相当于 for (Minute minte:minuteList),示列如下: < #list minuteList as minute > < w:p w14:paraId ="3BB7AF6B" w14:textId ="2AD2E958" w:rsidR ="00D80192" w:rsidRDefault ="00C4552D" w:rsidP ="00E47882" > < w:pPr > < w:pStyle w:val ="a6" /> < w:numPr > < w:ilvl w:val ="0" /> < w:numId w:val ="2" /> </ w:numPr > <

easyexcel 自动设置列宽

ぃ、小莉子 提交于 2020-08-07 09:48:27
版本 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.4</version> </dependency> 导出controller层代码 @RequestMapping("/download") public void download(HttpServletResponse response) throws IOException { response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("测试", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); List<Dept> depts = new ArrayList<>(3); for (int i = 0; i < 3; i++) { Dept dept = new Dept(); dept.setDname("d"+i); dept.setDeptno

MybatisPlus-自动填充字段(时间字段/普通字段)

人走茶凉 提交于 2020-08-07 08:26:36
实体类 @Data // lombok依赖 public class User{ @TableField( fill = FieldFill.INSERT) private Integer isDelete; @TableField(fill = FieldFill.INSERT_UPDATE) private Date createTime; } 实现元对象处理器接口: com.baomidou.mybatisplus.core.handlers.MetaObjectHandler @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用) this.fillStrategy(metaObject, "isDelete", 1); // 也可以使用(3.3.0

Java利用VLC开发简易的视频播放器

怎甘沉沦 提交于 2020-08-07 08:10:33
前言 本文参考了 Java利用VLC开发简易视屏播放器 中的核心代码,本文仅作为个人的学习笔记。 配置 亲测依照 Java利用VLC开发简易视屏播放器 中的配置环境是可行的。 具体配置如下 (1)下载VLC VlC官网http://www.videolan.org/ 各个版本的下载地址http://download.videolan.org/pub/videolan/vlc/last/ 里面有32位和64位的区分,按照自己的系统下载对应的vlc版本,下载解压后提取; (2)下载VLCJ ( http://capricasoftware.co.uk/#/projects/vlcj)把下载文件解压后将其目录下的jna-3.5.2.jar、platform-3.5.2.jar、vlcj-3.8.0.jar(不同版本后缀数字可能会不同)三个文件复制到对应的java工程目录(新建 lib 文件夹)下; (3)下载slf4j( http://www.slf4j.org/),下载文件后解压将其目录下的slf4j-api-1.7.13.jar、slf4j- nop-1.7.13.jar(不同版本后缀数字可能会不同)两个文件复制到对应的java工程目录(新建 lib 文件夹)下; (4)将vlc安装目录下的libvlc.dll、libvlccore.dll

【微服务】zipkin 链路追踪

核能气质少年 提交于 2020-08-07 06:20:23
1. zipkin基础介绍: 分布式追踪系统 概念: tranceID: 请求全局处理标识 spanID: 请求在单个服务流转处理标识 ParentID: 子服务中显示父服务ID(spanID),主要用于构建服务调用链路 数据传输到Zipkin方式: http kafka Scribe Zipkin构成组件: collector: zipkin校验、保存、索引接收的追踪数据 storage: zipkin 数据存储(Cassandra、mysql、ES、内存等,支持扩展) search: zipkin 数据检索服务(WEB UI) WEB UI: 数据追踪展示UI,默认没有认证 2. 环境部署 参考官网下载: zipkin quickstart 3. 使用案例 3.1 maven 依赖引入 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter

java Spark 读取hbase数据

≡放荡痞女 提交于 2020-08-07 06:16:41
引用的jar包(maven) <properties> <java.version>1.8</java.version> <ch.qos.logback.version>1.2.3</ch.qos.logback.version> <sharding-sphere.version>4.1.1</sharding-sphere.version> <spark.version>2.4.6</spark.version> <hbase.version>2.3.0</hbase.version> <hadoop.version>2.7.4</hadoop.version> </properties> <!-- Spring HBase 依赖 --> <!--==================hadoop ===================--> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <

spring boot整合redis,以及设置缓存过期时间

前提是你 提交于 2020-08-06 20:19:22
spring-boot 整合 redis,有问题,欢迎留言 注: redis 服务器要先开启! 或者连接远程服务器上的 Redis,但是依然要开启服务,不然会一直 TimeOut! pom文件: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 配置 application.properties # redis # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.pool.max-active=20 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.jedis.pool.max-idle=10 #

SpringBoot实现限制ip访问次数

孤人 提交于 2020-08-06 10:58:05
https://blog.csdn.net/weixin_34050005/article/details/92415288?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase https://blog.csdn.net/qq_38095094/article/details/78709433 有时候存在着一些恶意访问的情况,为了阻止这种情况的发生,我们可以写一个拦截器,当某个IP的访问在单位时间内超过一定的次数时,将禁止他继续访问。 在这里我们使用了SpringBoot搭配注解来使用 除了springboot需要的依赖之外,我们还需要加上Aspect依赖 <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --> < dependency> < groupId>org.springframework </ groupId> < artifactId

【springboot】【socket】spring boot整合socket,实现服务器端两种消息推送

十年热恋 提交于 2020-08-06 10:13:24
========================前后台分别要做的事情======================== 一.前台 使用js【HTML页面】 var websocket = new WebSocket("ws://localhost:8080/echo"); 获取socket连接。 注意1:   URL地址是"ws://后台服务IP:Port/路由地址" 注意2:   路由地址是任意自定义的。后台会有配置关于一个路由地址的【Handler处理器】和【Interceptor拦截器】 注意3:   一种路由地址之间,是可以相互通信的。 例如:   html1 中配置路由地址:echo html2 中也配置路由地址:echo   在服务器配置了 这一种路由地址echo的【Handler处理器】和【Interceptor拦截器】后。   这就代表,html1和html2都在服务器上注册了关于 路由地址echo 的webSocket服务。   现在,只要html1使用echo注册的webSocket服务发送消息(websocket.send(json);),服务器端就会拦截到消息,并对其他注册了echo这个webSocket服务的页面发送信息。   可以是对单点发送,也可以是对所有广播。 二.后台服务器端 spring boot 集成 webSocket 后台服务器端

log4j日志打印级别动态调整

人走茶凉 提交于 2020-08-05 20:26:29
1,为什么日志打印级别要动态调整?   随着项目越来越大,访问量也越来越高,遇到问题时想要排查,可是日志一打开却刷的太快太快,不好排查问题,有的时候甚至因为短时间打印日志太多,严重影响了性能,这个时候日志的打印级别的动态调整就相当有必要了,在不重启项目的情况,不改动代码的情况下,通过Apollo动态配置就可以通过配置动态的调整日志的级别,可以精确到配置具体的类的日志打印级别。 2,动态调整的方案   大致思路为在springboot项目启动之后,读取Apollo配置文件里的配置文件,总共有两个,一个是总的日志级别,一个是单独的类的配置,然后设置总的之后再设置具体到类的自定义的,同时注册一个监听器监听两个文件的变化,一旦有变化就重新设置一遍,是不是很简单呢?   在项目中使用日志的方式请统一使用Slf4j门面模式。具体代码如下,将该类在启动时注册入spring容器就行。值得注意的是该类中的initCustomClass()方法,该方法是因为有很多类在springboot启动时没有初始化,那么也就没有注册入LoggerContext的属性中,所以是无法设置的,通过手动初始化该类的形式来初始化之后重新设置一遍。在详细的配置文件中是支持正则表达式来匹配的。 @Service @Slf4j public class LoggerConfiguration implements