基于SpringBoot的文件上传和下载

基于SpringBoot的文件上传和下载1. 创建SpringBoot项目略2. 在pom.xml文件中添加依赖<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>3. 编辑application.properties文件在application.proper...

Java 2020-01-17 PM 1746℃ 0条

容器深入研究--理解Map

容器深入研究--理解Map前言本篇讲述《Java编程思想》第17.8小节,理解Map概述映射表(也称关联数组)的基本思想是它维护的键-值(对)关联,因此你可以使用键来查找值。标准的Java类库中包含了Map的几种实现,包括:HashMap,TreeMap,LinkedHashMap,WeakHashMap,ConcurrentHashMap,IdentityHashMap。​ 它们都有同样的基本接口Map,但是行为特性各不相同,这表现在效率、键值对的保存及呈现次序、对象的保存周期、映射表如何在多线程程序中工作的判定“键”等价的策略方面。Map接口实现的数量应该让你感觉到这种工具...

Java 2020-01-17 AM 1468℃ 0条

容器深入研究--队列

容器深入研究--队列前言本篇讲述《Java编程思想》第17.7小节,队列概述除了并发应用中,Queue在java中仅有两个实现是LinkedList和PriorityQueue,它们的差异在于排序行为而不是性能。示例public class QueueBehavior { private static int count=10; static <T> void test(Queue<T> queue, Generator<T> gen){ for(int i=0;i<count;i++){ ...

Java 2020-01-16 AM 1459℃ 0条

【转载】MyBatis一次性插入多条数据

【转载】MyBatis一次性插入多条数据使用MyBatis的Mapper.xml里面的 <foreach>标签进行循环插入,这种方法相对于Controller层的for循环一条条的插入,不论是效率还是数据库消耗都较之于后一种有很大提升。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/myb...

其它 2020-01-16 AM 3812℃ 3条

容器深入研究--Set和存储顺序

容器深入研究--Set和存储顺序前言本篇讲述《Java编程思想》第17.6小节,Set和存储顺序。1. 示例对Set中的TreeSet、HashSet、LinkedHashSet功能进行比较代码public class SetTest { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(6); list.add(4); list.add(3); l...

Java 2020-01-15 AM 1515℃ 0条

容器深入研究--List的功能方法

容器深入研究--List的功能方法前言本篇讲述《Java编程思想》第17.5小节,List的功能方法概述​ 正如你所看到的,基本的List很容易使用:大多数时候只是调用add()添加对象,使用get()一次取出一个元素,以及调用iterator()获取用于该序列的Iterator。​ 下面例子中每个方法都涵盖了一组不同的动作:basicTest()中包含每个List都可以执行的操作;iterMotion()使用Iterator遍历元素;对应的iterManipulation()使用Iterator修改元素;testVisual()用以查看List的操作效果;还有一些L...

Java 2020-01-14 AM 1431℃ 0条

容器深入研究--可选操作

容器深入研究--可选操作前言本篇讲述《Java编程思想》第17.4小节,可选操作概述​ 执行各种不同的添加和移除的方法在Collection接口中都是可选操作。这意味着实现类并不需要这些方法提供功能定义。可选操作的具体实现与表现:一般是在Abstract类中实现特定的方法,但是该方法体内只有一条抛出UnsupportOperationException异常语句;从而继承该抽象类却没override该方法的类,在进行向上转型使用root interface来调用该方法时,在运行时抛出异常。定义可选操作的原因:“这样做可以防止在设计中出现接口爆炸的情况”。通过抽象类来推迟某些方...

Java 2020-01-13 AM 1503℃ 0条

持续集成工具--Jenkins简介

持续集成工具--Jenkins简介1. 什么是持续集成持续集成 Continuous integration ,简称CI ​ 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。​ 持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发...

工具 2020-01-12 PM 1471℃ 0条

DockerMaven插件

DockerMaven插件前言微服务部署有两种方法:(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器。(2)通过Maven插件自动部署。对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。Maven插件自动部署步骤:(1)修改宿主机的docker配置,让其可以远程访问vi /lib/systemd/system/docker.service修改如下配置文件:原来文件中ExecStart=是下方内容的: ExecStart=/usr/bin/do...

工具 2020-01-11 PM 1881℃ 0条

容器深入研究--Collection的功能方法

容器深入研究--Collection的功能方法前言本篇讲述《Java编程思想》第17.3小节,Collection的功能方法概述下面表格列出了可以通过collection执行的所有操作,它们是可以通过set或者list执行的所有操作(list中会有一些额外的方法)方法方法说明boolean add(T)确保容器持有具有泛型类型T的参数。如果没有将此参数添加进容器,则返回falseboolean addAll(Collection <? extends T>)添加参数中的所有元素,只要添加了任意元素就返回truevoid clear()移除容器中的所有元素boolean con...

Java 2020-01-10 AM 2458℃ 2条