maven打可执行jar包 1 前言本文示例基于dubbo的系统架构,jar包程序入口使用dubbo框架提供的com.alibaba.dubbo.container.Main方法。2 软件架构(部分)xd-parent(maven父配置)xd-common(公共工程)xd-service(dubbo服务提供者:依赖xd-common)xd-web(dubbo服务消费者)3 以xd-service工程打成可执行j...
zookeeper学习---单机部署 1、下载zookeeper下载地址:http://archive.apache.org/dist/zookeeper/或wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz2、解压安装包tar -zxvf zookeeper-3.4.6.tar.gz3、在 zooke...
虚拟机连接外网(CentOS7) 一、虚拟机设置选择【仅主机模式】二、本地连接(可以访问外网)属性设置ps:如果出现【internet连接共享访问被启用时 出现了一个错误 ,(null)】,启动【Windows Firewall】服务。查看VMnet1 IPv4属性,会发现 自动分配了IP 192.168.137.1三、VMware-编辑-虚拟网络编辑器四、linux系统设置4.1 配置ifcfg-e...
SSM+shiro核心配置文件 一、web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee&
springMVC wangeditor上传图片 前台代码:<script type="text/javascript" src="/static/plugins/wangEditor.min.js"></script><div id="editor"></div><script type="text/javascript">
Java三大器之拦截器(Interceptor)的实现原理及代码示例 前言:前面2篇博客,我们分析了Java中过滤器和监听器的实现原理,今天我们来看看拦截器。1,拦截器的概念 java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器...
Java三大器之监听器(Listener)的工作原理和代码演示 现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。首先来看一下ServletCon...
Java三大器之过滤器(Filter)的工作原理和代码演示 一、Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Servlet...
解析XML import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.
微信小程序分页功能(上拉触底事件) js核心代码Page({ data: { // 前台显示list showlist: [], // 当前页 pageNumber: 1, // 总页数 totalPage: 1, }, onLoad: function (options) { var self = this; // 请求后台 // 获取第一页的list及
JAVA8 Optional类 原文地址:http://www.importnew.com/6675.html身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。Java 8引入了一个新的Optional类。Optional类的Javadoc描述如下: 这是一个可以为null的容器对
JDK8函数式接口Function、Consumer、Predicate、Supplier 如果你在探索 在JAVA8中 支持lambda表达式的接口,你会在java.util.function包下发现像 Function、Supplier、Consumer、Predicate 等接口。这些接口有一个抽象方法,会被定义的lambda表达式重写。Function接口用于将一些代码封装到一个方法中,该方法接受一些值作为输入参数,然后在对输入执行所需的操作之后返回另一个值。该方法的输入参数类型
JAVA8 函数式接口介绍 1.JAVA8之前相信你见过或使用过如下接口:java.lang.runnable,java.awt.event.actionlistener,java.util.comparator,java.util.concurrent.callable。 这些接口有一个共同特性,接口中只声明一个方法,这些接口也称为单个抽象方法接口( Single Abstract Method interfaces)。其
Mybatis传多个参数 第一种方案DAO层的函数方法 public User selectUser(String name,String area);对应的Mapper.xml<select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{0} and user_area=#{1
SpringMVC上传图片并预览 1.HTML代码<form id="logoform" enctype="multipart/form-data"> <input type="file" name="file" id="image_input"/></f
java 计算方法执行时间 用到了反射,也是对反射的简单回顾吧。package algorithm;import java.lang.reflect.Method;import java.util.Arrays;public class Test { // 排序原始数据 private static final int[] NUMBERS = {49, 38, 65, 97, 76, 13, 2
八大排序算法 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。排序算法稳定性: 通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 稳定性的好
微信小程序 textarea 不显示文本解决办法 1.问题重现:A页面 传文本到 B页面,B页面 在textarea中 显示文本。 2.代码 pagea.js var desc = '我要在B页面的textarea中显示'; wx.redirectTo({ url: '../pageb/pageb?desc=' + desc, })pageb.jsonLoad: function (options) {
java设计模式-单例模式 原文地址:http://blog.csdn.net/qq_22706515/article/details/74202814序言在23种设计模式中,单例是最简单的设计模式,但是也是很常用的设计模式。从单例的五种实现方式中我们可以看到程序员对性能的不懈追求。下面我将分析单例的五种实现方式的优缺点,并对其在多线程环境下的性能进行测试。实现单例模式适用于资源占用较多的类,保证一个类只有一个实例即单例。通用
使用setbit、bitcount实现用户上线次数统计 1.语法SETBIT key offset value对 key 所储存的字符串值,设置或清除指定偏移量offset上的位(bit)。位的设置或清除取决于 value 参数,value参数取值 0 或者 1。字符串会进行伸展(grown)以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。offset 参数必须大于或等于 0 ,小于 2^32 (bi
eclipse+python+pydev(解决安装成功看不到插件) Python版本Eclipse版本JDKPyDev版本安装插件urlPython 2.6 or newerEclipse 4.6Java 8PyDev 5.8.0http://www.pydev.org/updatesPython 2.6 or newerEclipse 4.5Java 8PyDev 5.2.0http://www.pydev.org/update_sites/5.2.0Pyt
JAVA位运算 Java定义的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long(64位)、int(32位)、short(16位)、char(16位无符号)、byte(8位),其中 1字节等于8位,即1 byte = 8 bit。整数类型范围 -2^(n-1) ~ 2^(n-1)-1java计算最大值long-2^63 ~ 2^63-1Long.MAX_VALUE
学习JAVA线程池 一、线程池作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待
学习CountDownLatch 原文链接:http://www.iteye.com/topic/1002652CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的
AtomicInteger线程安全的操作加减 AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。下面通过简单的例子对比来看一下 AtomicInteger 的强大的功能class Counter { private volatile int co
学习Location对象 Location 对象包含有关当前 URL 的信息。 Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。一、Location 对象属性var href = window.location.href;//设置或返回完整的 URL。var protocol = window.location.protocol;//设置或返回当前 UR
URL中“#”号的作用 一、#的涵义 #代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print 就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。 为网页位置指定标识符,有两个方法。 一是使用锚点,比如 二是使用id属性,
word-wrap 和 word-break 属性 <style>.test { width:200px; height:100px; background-color:#479de6; }</style>1 、默认显示 测试zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2 、 word-wrap:break-w
事件DOMContentLoaded和load的区别 他们的区别是,触发的时机不一样,先触发DOMContentLoaded事件,后触发load事件。DOM文档加载的步骤为1.解析HTML结构。 2.加载外部脚本和样式表文件。 3.解析并执行脚本代码。 4.DOM树构建完成。//DOMContentLoaded 5.加载图片等外部文件。 6.页面加载完毕。//load在第4步,会触发DOMContentLoaded事件。在第6步,触发load
Flex,再也不用担心页面布局了 转载地址:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。一、Flex 布局是什么?Flex 是 Flexible Box 的缩写,意为”弹性布局”,用来为盒状模型提供最大
微信小程序 button内多行文字垂直居中、短信倒计时 1.wxml<button class="btn_yzm" catchtap="getYzm" disabled="{{yzmDisabled}}"><text>{{yzm}}</text></button>2.wxss 实现button内多行文字垂直居中.btn_yzm { font-size: 24rpx; color: #EB602E; border: 2rpx solid #E
JAVA 微信公众号调用摄像头并上传图片至服务器 一、主体思想1.使用微信JS-SDK工具包。 点击button,调用拍照接口【chooseImage】和上传图片接口【uploadImage】,拿到图片的服务器端ID,即【mediaId】 2.调用【获取临时素材】接口(参数mediaId),拿到返回的流,保存到服务器。官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455
JAVA MD5 import java.security.MessageDigest;public class MD5 { private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; /**
JAVA AES128 import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;/** * @author cold */public class AES128 { // 加密算法 private static String ALGO = "A
JAVA sha1 package org.cold.util;import java.security.MessageDigest;public class Sha1 { public static String getSha1(String str){ if (null == str || 0 == str.length()){ return null;
数据库多表关联查询 本文主要列举两张和三张表来讲述多表连接查询。新建两张表:表1:student 截图如下:表2:course 截图如下:(此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键。)一、外连接外连接可分为:左连接、右连接、完全外连接。1、左连接 left join 或 left outer joinSQL语句:select * from st
java设计模式-状态模式 一、定义状态(State)模式又称为状态对象模式(Pattern of Objects for State),状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变时改变其行为,用于解决系统中复杂对象的状态装换以及不同状态下行为的封装问题。状态和行为: 所谓对象的状态,通常指的就是对象实例的属性的值;而行为指的就是对象的功能,再具体点说,行为大多可以对应到方法上。 状态模式的功能就是
悲观锁和乐观锁 1、悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系 统不会修改数据)。2、乐观锁( Optimistic Locking ) 相对悲观锁而言
java中内部类总结 内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中实例1:内部类的基本结构//外部类class Out { private int age = 1
java中的匿名内部类总结 匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口实例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void eat();}class Child extends Person { public void
在java web项目中调用c++程序简单案例 1.首先新建一个java web项目,编写一个java类因为要使用jni来调用c++程序,因此该类中的方法名录需要用native修饰且只有方法声明,没有实现package testnative;public class TestNative { public native static String testNative(String str);}2.在eclipse中使用javah命令来编译
[转]深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解并欢迎批评指正,不甚感激。 请
JAVA导出excel(JFinal) 1. 后台代码import java.io.BufferedOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletResponse;import org
JAVA读取Excel2003、2007、2010 1.代码import java.io.File;import java.io.FileInputStream;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache
HTPPS请求 证书 解决方案 1.忽略证书 public static String sendGetByProxy(String url, String param, String encode,String host,int port) throws Exception { String result = ""; BufferedReader in = null; Strin
使用代理IP网络爬虫的三种方式 import java.io.IOException;import java.io.InputStream;import java.net.InetSocketAddress;import java.net.Proxy;import java.net.SocketAddress;import java.net.URL;import java.net.URLConnection;impo
js转换json格式时间成字符串前台显示 ajax请求后台,后台返回需要的数据,其中返回数据有json格式的时间类型,这样需要转换成字符串用来前台显示,数据如下:{“upointInfo”:[{“createDate”:{“date”:16,”day”:3,”hours”:15,”minutes”:47,”month”:0,”nanos”:0,”seconds”:23,”time”:1358322443000,”timezoneOffset
String、Date、Timestamp之间的转换 一、String与Date(java.util.Date)互转 1.1 String -> DateString dateStr = "2010/05/04 12:34:23"; Date date = new Date(); //注意format的格式要与日期String的格式相匹配 DateFormat sdf = new SimpleDa
CryptoJS中AES256(CBC)加密算法简单使用 1.CryptoJS脚本下载 下载地址:http://pan.baidu.com/s/1slwHVLb2.简单使用<script src="<%=request.getContextPath()%>/js/cryptojs/crypto-js.js"></script>未完
在Java中直接调用js代码 目录(?)[-]在Java中直接调用js代码在Java中绑定js变量在Java中调用js文件中的function传入调用参数并获取返回值JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。在Java中直接调用js代码不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert” is not defined。 package com.
JAVA实现Python requests模块(JAVA实现Http请求) 1.感谢Liu Dong的开源项目! 项目地址:https://github.com/clearthesky/requests requests-4.8.0.jar(该版本支持jdk1.7):http://pan.baidu.com/s/1mhAhqeG具体的使用方法,请查看项目地址中Usage。2.一个简单的HTTP请求的例子,发送请求和读取响应字符串:Map<String, Object>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scal 触摸屏设备IOS、Android等对网站meta的定义,经常用的时候就是复制下面几行代码。。。<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no
radio、checkbox单击行,自动选中 出处: 做一个类似【试卷答题】的小项目,存在单选题、多选题。 使用label标签,只能达到点击文字 选中答案,如何做到如下图所示。 核心代码: 1.html代码<style>input{ float:right;}</style><c:forEach items="${qlist }" var="question" varStatus="status"> <c:if t
URLConnection实现爬虫(解决重定向、设置cookie才能抓取页面等问题) 1.关键方法 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @param encode
JavaScript 数组操作函数总结(push,pop,join,shift,unshift,slice,splice,concat) 这里总结到的 js 数组操作函数有:push,pop,join,shift,unshift,slice,splice,concat(1)push 和 pop这两个函数都是对数组从尾部进行压入或弹出操作。push(arg1,arg2,...)可以每次压入一个或多个元素,并返回更新后的数组长度。注意如果参数也是数组的话,则是将全部数组当做一个元素压入到原本的数组里面去。pop() 函数
事务四大属性ACID 事务机制可以确保数据一致性。 事务具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务
windows7安装ipython及常用命令 1.安装python2.72.cmd中进入ez_setup.py所在目录,安装ez_setup.pyC:\Users\Administrator>python ez_setup.pyez_setup.py下载地址3.安装pyreadline pyreadline下载地址4.下载ipython,解压至C盘根目录 ipython下载地址5.进入ipython目录,cmd中安装ipythonC:\ip
windows7安装whl文件 1.安装python2.72.管理员身份 打开cmd3.通过pip命令安装wheelC:\Users\Administrator>pip install wheel4.进入whl文件所在目录,安装whl文件D:\python\64>pip install requests-2.8.1-py2.py3-none-any.whl5.python IDE中测试 网络爬虫import requestsre
JavaScript去除特殊字符 function formatting(str){ return str.replace(/(^\s*)|\^|\.|\*|\?|\!|\/|\\|\$|\#|\&|\||,|\[|\]|\{|\}|\(|\)|\-|\+|\=|(\s*$)/g, "");}加油加油加油!
WebService到底是什么? 一、序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏
Eclipse修改代码,不用手动重启Tomcat 1.Window – Show View –Servers2.双击 3. 选中 Modules 4.选中项目–Edit 5.选中 Auto reloading enabled
spring+mybatis声明式 和 注解式实现事务 核心代码 1.声明式实现事务<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property></bean><!--
echarts图表库 实现简单 雷达图 1.下载js文件 http://echarts.baidu.com/download.html2.核心代码<script type="text/javascript
ajax+springMVC实现跨域 1.前台代码 $.ajax({ type:"get", url:"http://xxx/xxx/xxx", data:{"studentPhone":"15866667777"}, dataType:"jsonp", jsonp:"jsoncallback", //{jsonp:'jsoncallback'}
静态代码块、构造代码块、构造方法执行顺序 执行顺序:父类静态代码块 > 子类静态代码块 > 父类构造块 > 父类构造方法 > 子类构造块 > 子类构造方法原理:当实例化子类对象时,首先要加载父类的class文件进内存,静态代码块是随着类的创建而执行,所以父类静态代码块最先被执行,子类class文件再被加载,子类静态代码块被执行。实例化子类对象要先调用父类的构造方法,而调用父类构造方法前会先执行父类的非静态代码块(构造块)