- 博客(109)
- 资源 (18)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 Jenkins构建完成后自动部署到指定服务器
主要分为两步:1、发送Jenkins构建好的war包到指定服务器2、执行部署脚本这里是通过使用 publish over ssh 插件。插件管理中搜索publish over ssh 安装,完成后系统设置中就可以看到相关设置项了。Jenkins服务器上的公钥需要放到部署项目服务器上,可以使用ssh-add-id命令发送公钥到指定服务器。Passphrase : 私钥的密码...
2018-08-14 14:59:19
3594
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 jenkins 上传war到服务器脚本 上传war到docker生成新的镜像容器启动脚本及dockerfile
在jenkins配置中的构建后操作选择Deploy war/ear to a container// 上传到指定服务器tomcat 脚本export JAVA_HOME=/home/jiaopi/jdk1.7.0_67export JRE_HOME=/home/jiaopi/jdk1.7.0_67/jresh /home/jiaopi/apache-tomcat-7.0.42/bin/...
2018-08-14 14:54:25
858
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 HashMap的设计原理和实现分析
HashMap在Java开发中有着非常重要的角色地位,每一个Java程序员都应该了解HashMap。 本文主要从源码角度来解析HashMap的设计思路,并且详细地阐述HashMap中的几个概念,并深入探讨HashMap的内部结构和实现细节,讨论HashMap的性能问题,并且在文中贯穿着一些关于HashMap常见问题的讨论。 读完本文,你会了解到:
2017-03-15 10:29:02
535
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 Mybatis的ResultMap的使用
本篇文章通过一个实际工作中遇到的例子开始吧: 工程使用Spring+Mybatis+Mysql开发。具体的业务逻辑很重,对象之间一层一层的嵌套。和数据库表对应的是大量的model类,而和前端交互的是Vo类。现在需要做一个需求,有两种方式来实现: 使用现有的Service接口,或者自己在编写一些用到的接口,手动使用Java代码来分别调用Service接口来查出各个model,然后在业
2017-03-15 10:27:18
293
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 Mybatis初始化机制详解
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置文件创建Configuration对象的过程 3. 手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSessionFa
2017-03-15 10:16:10
361
转载 jenkins和docker实现自动化构建部署
应用场景程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些工作自动化呢,只需要程序员更新代码到svn,然后自动的构建,发布,呈现效果,当然是可以的,通过jenkins和docker来实现。操作步骤1. 概述开发者的工作大概流程是,eclips...
2018-08-14 15:06:33
298
转载 docker入门实战笔记
1.什么是docker: docker翻译为搬运工,在这里应该可以理解为搬运应用的工具,也就是云.先了解其运用场景之后更容易对他形成深刻理解. Docker提供了一种可移植的配置标准化机制,允许你一致性地在不同的机器上运行同一个Container;而LXC本身可能因为不同机器的不同配置而无法方便地移植运行; Docker以App为中心,为应用的部署做了很多优化,而LXC的帮助...
2018-08-14 15:02:47
698
转载 Jenkins安装与配置
一、Windows环境中安装Jenkins在最简单的情况下,Jenkins 只需要两个步骤:1、下载最新的版本(一个 WAR 文件)。Jenkins官方网址: http://Jenkins-ci.org/2、命运行运行 java -jar jenkins.war (默认情况下端口是8080,如果要使用其他端口启动,可以通过命令行”java –jar Jenkins.war --http...
2018-08-14 14:58:03
266
原创 docker 命令
docker versionsystemctl start docker.serviceps aux | grep dockerservice docker startservice docker restart从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:docker pull [选项] [Docker Registry 地址[:端口号]...
2018-08-14 14:44:25
206
转载 Java并发编程的艺术(十一)——线程池(2)
Executor两级调度模型在HotSpot虚拟机中,Java中的线程将会被一一映射为操作系统的线程。在Java虚拟机层面,用户将多个任务提交给Executor框架,Executor负责分配线程执行它们; 在操作系统层面,操作系统再将这些线程分配给处理器执行。Executor结构Executor框架中的所有类可以分成三类:任务 任务有两种类型:R
2017-08-07 10:24:58
224
转载 Java并发编程的艺术(十)——线程池(1)
线程池的作用减少资源的开销 减少了每次创建线程、销毁线程的开销。提高响应速度 每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高了响应速度。提高线程的可管理性 线程是一种稀缺资源,若不加以限制,不仅会占用大量资源,而且会影响系统的稳定性。 因此,线程池可以对线程的创建与停止、线程数量等等因素加以控制,使得线程在一种可控的范围内运行,不仅
2017-08-07 10:24:29
250
转载 Java并发容器大合集
概述 java.util包中的大部分容器都是非线程安全的,若要在多线程中使用容器,你可以使用Collections提供的包装函数:synchronizedXXX,将普通容器变成线程安全的容器。但该方法仅仅是简单地给容器使用同步,效率很低。因此并发大师Doug Lea提供了java.util.concurrent包,提供高效的并发容器。并且为了保持与普通的容器的接口一致性,仍然使用
2017-08-04 15:30:32
326
转载 Java并发编程的艺术(七)——Executors
Executors框架简介Executor框架便是Java5中引入的,其内部使用了线程池机制,它在Java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在java5之后,通过Executor来启动线程比使用Thread的start方法更好,除了更易管理,效率更好(用线程池实现,节约开销)外,还有关键的一点:有助于避免this
2017-08-04 15:25:55
204
转载 Java并发编程的艺术(九)——批量获取多条线程的执行结果
当向线程池提交callable任务后,我们可能需要一次性获取所有返回结果,有三种处理方法。方法一:自己维护返回结果// 创建一个线程池ExecutorService executorService = Executors.newFixedThreadPool(10);// 存储执行结果的ListList> results = new ArrayList>();// 提交10个任
2017-08-04 15:20:58
239
转载 java怎么用一行代码初始化ArrayList
解决方法 1:其实,可能要初始化的"最佳"方式,ArrayList 是你写的方法,因为它不需要创建一个新的 List 以任何方式:ArrayList list = new ArrayList(); list.add("A"); list.add("B"); list.add("C");渔获是相当多的键入所需,请参阅 list 实例。有如使一
2017-07-31 10:41:34
213
转载 Java中的八种基本数据类型所占字节的求法
Java中有八种基本数据类型,分别为:byte、short、int、long、float、double、char、boolean。这八种基本类型都有对应的包装类,分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean。 面试时时常会闻到这八种基本类型及其包装类,而且各种基本类型所占的字节数即使记不住、能用代码实现也是可以的
2017-07-31 10:40:12
601
转载 Java面试宝典:42个面试题总结!
本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。开始!目录面向对象编
2017-07-31 10:39:05
283
转载 面试十大常见Java String问题
本文介绍Java中关于String最常见的10个问题:1. 字符串比较,使用 "==" 还是 equals() ?简单来说, "==" 判断两个引用的是不是同一个内存地址(同一个物理对象).而 equals 判断两个字符串的值是否相等.除非你想判断两个string引用是否同一个对象,否则应该总是使用 equals()方法.如果你了解 字符串的驻留 ( String In
2017-07-31 10:37:13
157
转载 深入理解JVM(十)——类加载器
类与类加载器类加载器的作用:将class文件加载进JVM的方法区,并在方法区中创建一个java.lang.Class对象作为外界访问这个类的接口。类与类加载器的关系:比较两个类是否相等,只有当这两个类由同一个加载器加载才有意义;否则,即使同一个class文件被不同的类加载器加载,那这两个类必定不同,即通过类的Class对象的equals执行的结果必为false。类加载器种类JVM提
2017-07-31 10:20:16
166
转载 深入理解JVM(九)——类加载的过程
通过之前的介绍可知,类加载过程共有5个步骤,分别是:加载、验证、准备、解析、初始化。其中,验证、准备、解析称为连接。下面详细介绍这5个过程JVM所做的工作。加载注意:“加载”是“类加载”过程的第一步,千万不要混淆。1. 加载的过程在加载过程中,JVM主要做3件事情:通过一个类的全限定名来获取这个类的二进制字节流,即class文件: 在程序运行过程中,当要访问一个类时,若
2017-07-31 10:19:06
175
转载 深入理解JVM(八)——类加载的时机
原文:http://blog.csdn.NET/u010425776/article/details/51251430类的生命周期一个类从加载进内存到卸载出内存为止,一共经历7个阶段: 加载——>验证——>准备——>解析——>初始化——>使用——>卸载其中,类加载包括5个阶段: 加载——>验证——>准备——>解析——>初始化在类加载的过程中,以下3个
2017-07-28 14:58:41
161
转载 深入理解JVM(七)——Class文件结构
原文:http://blog.csdn.NET/u010425776/article/details/51245055什么是JVM的“无关性”?Java具有平台无关性,也就是任何操作系统都能运行Java代码。之所以能实现这一点,是因为Java运行在虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,因此Java能实现“一次编写,处处运行”。而JVM不仅具有平台无关
2017-07-28 14:57:55
215
转载 深入理解JVM(六)——JVM性能调优实战
http://blog.csdn.net/u010425776/article/details/51232463如何在高性能服务器上进行JVM调优?为了充分利用高性能服务器的硬件资源,有两种JVM调优方案,它们都有各自的优缺点,需要根据具体的情况进行选择。1. 采用64位操作系统,并为JVM分配大内存我们知道,如果JVM中堆内存太小,那么就会频繁地发生垃圾回收,而垃
2017-07-28 14:57:02
171
转载 深入理解JVM(五)——HotSpot垃圾收集器详解
原文:http://blog.csdn.NET/u010425776/article/details/51199767HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器。我们可以根据自己实际的应用需求选择最适合的垃圾收集器。根据新生代和老年代各自的特点,我们应该分别为它们选择不同的收集器,以提升垃圾回收效率。
2017-07-28 14:56:22
147
转载 深入理解JVM(四)——对象内存的分配策略
http://blog.csdn.NET/u010425776/article/details/51192448Java所承诺的自动内存管理主要是针对对象内存的回收和对象内存的分配。在Java虚拟机的五块内存空间中,程序计数器、Java虚拟机栈、本地方法栈内存的分配和回收都具有确定性,一般在编译阶段就能确定需要分配的内存大小,并且由于都是线程私有,因此它们的内存空间都随着线程的
2017-07-28 14:55:12
149
转载 深入理解JVM(三)——垃圾收集策略详解
http://blog.csdn.NET/u010425776/article/details/51189318Java虚拟机的内存模型分为五个部分,分别是:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。这五个区域既然是存储空间,那么为了避免Java虚拟机在运行期间内存存满的情况,就必须得有一个垃圾收集者的角色,不定期地回收一些无效内存,以保障Java虚拟机能够
2017-07-28 14:53:20
149
转载 深入理解JVM(二)——揭开HotSpot对象创建的奥秘
1)Hotspot是什么:http://www.cnblogs.com/charlesblc/p/5993804.html在2008年和2009年,Oracle公司分别收购了BEA公司和Sun公司,这样Oracle就同时拥有了两款优秀的Java虚拟机:JRockit VM和HotSpot VM。Oracle公司宣布在不久的将来(大约应在发布JDK 8的时候)会完成这两款虚拟机的整合工作,使
2017-07-28 14:52:29
158
转载 深入理解JVM(一)——JVM内存模型
http://blog.csdn.NET/u010425776/article/details/51170118Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区。下面对这五个区域展开深入的介绍。
2017-07-28 14:51:44
180
转载 如何利用 JConsole观察分析Java程序的运行,进行排错调优
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JD
2017-07-28 14:41:27
190
转载 windows下经过JConsole监控tomcat的配置说明
windows下通过JConsole监控tomcat的配置说明一、安装JDK1、本次教程测试所采用的是绿色版的jdk1.6.0,大家自行去官网下载,就不多做说明了,不清楚如何配置JDK环境的朋友可以查看本人的另一篇日志:http://hyan.iteye.com/blog/19546012、安装完JDK后,点击开始-->运行,输入【jconsole】,点击确定。如果弹出
2017-07-28 14:39:54
403
转载 Git 基本操作命令
要安装Git-2.13.2-64-bit.exe在Git Bash中执行命令查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git ad
2017-07-26 17:31:31
273
转载 Git 通过Tag标签回退版本修复bug
1 前言本系列之所以取名”Git高级教程”,主要是教大家解决实际工作中遇到的问题,要求读者会基本的git用法和命令,请不要使用SourceTree这样的工具,因为它让你啥都不会、啥也不懂,git本身与Linux一脉相承,都是Linus torvalds写的嘛,所以命令行才是精髓。如果你还不会Git的话,强烈建议你学习廖雪峰的教程,简单易懂:廖雪峰的Git教程博主
2017-07-26 15:16:50
1193
1
转载 Git 远程仓库版本回退方法
1 简介最近在使用Git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。2 问题如果提交了一个错误的版本,怎么回退版本?如果提交了一个错误的版本到远程分支,怎么回退远程分支版本?如果提交了一个错误的版本到公共远程分支,又该怎么回退版本?3 本地分支版本回退的方法如果你在本地做了错误提交,那么回退版本的方法很简单 先用下面命令找到要回退的版
2017-07-26 15:14:10
950
转载 Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能
2017-03-17 17:59:25
177
转载 Spring 拦截器的使用
一、Web.xml配置在Web.xml 配置Spring核心控制器DispatcherServlet接收所有请求servlet> servlet-name>springmvcservlet-name> servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class> l
2017-03-17 17:58:44
325
转载 JNDI
JNDI 是什么JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI到底起什么作用?要了解JNDI的作用,我们可以从“如果不用JNDI我们怎样做?用了JNDI后我们又将怎样做?”
2017-03-17 17:57:56
213
转载 七、超时测试
Junit 4超时测试(Timeout test)可以被用来测试方法的执行时间。 Junit 4 超时测试可以被用在:在测试类的方法上使用 @Timeout 注解测试类的所有方法应用 Timeout规则在测试类的方法上使用 @Timeout 注解Junit 4 提供了 @Timeout 注解来测试任意特定方法的执行时间。如果测试方法的执行时间大于指定的超时参数,测试方法
2017-03-16 09:44:18
551
转载 六、忽略测试
Junit 4 忽略测试(Ignore test)被用来禁止执行junit测试类的某些或者全部测试方法。Junit 提供了@Ignore注解来实现 忽略测试。它可以用来跳过失败、或者抛出异常的测试方法。Junit 4 Ignore Test 应用到某些测试方法上Junit 4 Ignore Test 应用到整个测试类上Junit 4 Ignore Test 应用到某些测试方
2017-03-16 09:43:32
515
转载 五、测试套件
Junit 4允许通过使用测试套件类批量运行测试类 . 为一套测试类创建一个测试套件,要为测试类添加以下注解:@RunWith(Suite.class)@SuiteClasses(TestClass1.class, TestClass2.class)当运行时,所有包含在@SuiteClasses注解内的所有测试类都会被执行。Junit 4 测试套件 样例在本
2017-03-15 10:43:30
1255
转载 四、Junit4 参数化测试
Junit 4 参数化测试 允许通过变化范围的参数值来测试方法。参数擦测试可以通过以下简单的步骤实现:对测试类添加注解 @RunWith(Parameterized.class)将需要使用变化范围参数值测试的参数定义为私有变量使用上一步骤声明的私有变量作为入参,创建构造函数.创建一个使用@Parameters注解的公共静态方法,它将需要测试的各种变量值通过集合的形式返回。使用定义的私有
2017-03-15 10:42:23
756
C# winform cefsharp63 示例代码包含与js交互,chrome63,支持mp3,mp4,摄像头
2019-05-05
Asp.net(c#) b/s通过ActiveX和C# c/s winform 调用斑马TLP2844条码打印机源代码示例
2009-12-30
asp.net 服务端代码以 xml utf-8的格式向指定地址post 数据并接收返回值 HttpWebRequest
2009-05-15
dotnetCharting+2003 Oracle.DataAccess iewebcontrols Microsoft.Web.UI.WebControls
2008-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人