基于SpringBoot的文件上传和下载1. 创建SpringBoot项目略2. 在pom.xml文件中添加依赖<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <...
容器深入研究--理解Map前言本篇讲述《Java编程思想》第17.8小节,理解Map概述映射表(也称关联数组)的基本思想是它维护的键-值(对)关联,因此你可以使用键来查找值。标准的Java类库中包含了Map的几种实现,包括:HashMap,TreeMap,LinkedHashMap,WeakHashMap,ConcurrentHashMap,IdentityHashMap。 它们...
容器深入研究--队列前言本篇讲述《Java编程思想》第17.7小节,队列概述除了并发应用中,Queue在java中仅有两个实现是LinkedList和PriorityQueue,它们的差异在于排序行为而不是性能。示例public class QueueBehavior { private static int count=10; static <T> void t...
【转载】MyBatis一次性插入多条数据使用MyBatis的Mapper.xml里面的 <foreach>标签进行循环插入,这种方法相对于Controller层的for循环一条条的插入,不论是效率还是数据库消耗都较之于后一种有很大提升。 <?xml version="1.0" encoding="UTF-8" ?> <!D...
容器深入研究--Set和存储顺序前言本篇讲述《Java编程思想》第17.6小节,Set和存储顺序。1. 示例对Set中的TreeSet、HashSet、LinkedHashSet功能进行比较代码public class SetTest { public static void main(String[] args) { List<Integer> list...
容器深入研究--List的功能方法前言本篇讲述《Java编程思想》第17.5小节,List的功能方法概述 正如你所看到的,基本的List很容易使用:大多数时候只是调用add()添加对象,使用get()一次取出一个元素,以及调用iterator()获取用于该序列的Iterator。 下面例子中每个方法都涵盖了一组不同的动作:basicTest()中包含每个List都可以...
容器深入研究--可选操作前言本篇讲述《Java编程思想》第17.4小节,可选操作概述 执行各种不同的添加和移除的方法在Collection接口中都是可选操作。这意味着实现类并不需要这些方法提供功能定义。可选操作的具体实现与表现:一般是在Abstract类中实现特定的方法,但是该方法体内只有一条抛出UnsupportOperationException异常语句;从而继承该抽象类...
持续集成工具--Jenkins简介1. 什么是持续集成持续集成 Continuous integration ,简称CI 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 ...
DockerMaven插件前言微服务部署有两种方法:(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器。(2)通过Maven插件自动部署。对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。Maven插件自动部署步骤:(1)修改宿主机的docker配...