0

itext7 pdf整体结构和常见功能操作方法

本文很多资源来自http://developers.itextpdf.com/content/itext-7-jump-start-tutorial itext7整体结构 在层次结构的顶部,我们找到了IPropertyContainer界面。此接口定义设置,获取和删除属性的方法。这个接口有两个直接的子接口:IElement和IRenderer。该IElement接口将由例如来实现Text,Paragraph和Table。这些是我们将直接或间接添加到文档中的对象。该IRenderer接口将由例如来实现TextRenderer,ParagraphRenderer和Tabl...

阅读全文>>

0

14个Java并发容器,你用过几个?

前言不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。上面提到的线程安全容器都在java.util.concurrent包下,这个包下并发容器不少,今天全部翻出来鼓捣一下。仅做简单介绍,后续再分别深入探索。并发容器介绍ConcurrentHashMap:并发版HashMapCopyOnWriteArrayList:并发版ArrayListCopyOnWriteArraySet:并发SetConc...

阅读全文>>

0

使用itext7-core来生成pdf文档

之前使用itext5来生成pdf文档,最近又学习了itext7生成文档,感觉itext7用来生成pdf文件还不错。下面介绍一下使用方法。 首先在pom.xml文件中引入需要的依赖: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-core</artifactId> <version>7.1.8</version> <type>pom</type...

阅读全文>>

0

mvc模式如何分层

前言在做一个小型的管理系统的时候,有同学说他的功能都能实现,但是就是代码比较凌乱,时间久了就不知道各个包放的啥,有什么功能。我觉得不仅要有良好的写代码习惯,也要有好的分层意识。不能因为是初学者就忽视这个问题,因为好的习惯能给你带很多方便,也为未来做项目打下基础。习惯不好以后改过来挺麻烦的。因此最近看了一些大牛的文章,做了一些整理:首先说一下我们初学者学的MVC设计模式通过这个模式就会更好的理解最新的结构分层思想MVC模式阿里的编码规范中约束的分层一个好的分层,应该具备以下特点:方便后续代码进行维护扩展分层效果需要让整个团队接受,要始终明白未来的项目不是你一个人完成的。在一开始我觉得我们就应该有...

阅读全文>>

0

An enum switch case label must be the unqualified name of an enumeration constant

在使用java POI操作Excel的时候,使用枚举值时,会出现这样的错误提示。 先解释一下这句英文的含义:一个枚举switch case标签必须是一个枚举常量的非限定名称。 通俗一点,就是在case标签中不能加类(枚举应该算是一种特殊的类吧)的限定。 在Android开发中,有一个变量可能会被很多界面引用,所以我们就会在它前面增加static final public这样的修饰,但写多了,总感觉到比较散,后来我想到了enum类型,但在使用的过程,我遇到一个问题:enum和switch老是报错,如第一段的一个错的两种提示,以前很菜,不懂,当时就认为安卓本身就...

阅读全文>>

0

java使用POI处理用户Excel模板文件

一、POI概述   Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。   结构:  HSSF - 提供读写Microsoft Excel格式档案的功能。  XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。  HWPF - 提供读写Microsoft Word格式档案的功能。  HSLF - 提供读写Microsoft PowerPoint格式档案的功能。  HD...

阅读全文>>

0

Java:如何更优雅的处理空值?

导语在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。此篇文章,我总结了几种关于空值的处理手法,希望对读者有帮助。业务中的空值场景存在一个UserSearchService用来提供用户查询的功能:public interface UserSearchService{ List<User> listUser(); User get(Integer id);}问题现场对于面向对象语言来讲,抽象层级特别...

阅读全文>>

0

SpringBoot中如何优雅的读取yml配置文件?

YAML是一种简洁的非标记语言,以数据为中心,使用空白、缩进、分行组织数据,从而使得表示更加简洁易读。本文介绍下YAML的语法和SpringBoot读取该类型配置文件的过程。本文目录一、YAML基本语法以缩进代表层级关系缩进不能使用tab,只能用空格空格个数不重要,但是同一层级必须左对齐大小写敏感数据格式为,名称:(空格)值注释单行用#,只能注释单行二、YAML支持的数据格式字面量:数字、字符串、布尔等不可再分的值字符串默认不需要加单引号或者双引号,如果加双引号,它不会转义字符串里面的特殊字符,而加单引号,则会转义字符串里面的特殊字符,意思就是将特殊字符直接变为字符串输出。例子:key1: 1...

阅读全文>>

0

SpringBoot+EasyExcel实现Excel的导出

今天的积累都是为了更好的明天,加油!我是java程序员可以关注我一起学习哈! 今天心血来潮,突然想起很久以前的一个导出excel的功能,以前用的poi感觉挺麻烦的!今天就简单写下EasyExcel版本的,EasyExcel是阿里的一个开源框架!github地址https://github.com/alibaba/easyexcel大家也可以下载下来看看源码!我这里只做了一个简单的demo! EasyExcel和POI的对比 1、相比于POI,EasyExcel简化了开发量,能够用更少的代码实现更多的功能 2、相比于POI,EasyExcel使用简...

阅读全文>>

0

想动态切换数据源咋办,别急,SpringBoot来帮你搞定

相信大家在随着公司的规模的不断发展,系统不断的增多,或多或少的可能会遇到多数据源的场景,不管是为了读写分离,还是需要聚合业务上的多数据,今天就给大家分享一下,SpringBoot多数据源的实现方案。首先先看一下实现步骤 实现步骤 使用一个枚举类来定义列出所有的数据源; 加载所有数据源到Spring容器中; 绑定数据源和枚举类定义的数据源的关系; 定义属性为ThreadLocal类来管理当前线程的数据源; 继承AbstractRoutingDataSource并重写determineCurre...

阅读全文>>