系统稳定性设计原则:简单、冗余、标准化、健壮 系统稳定性设计原则:简单、冗余、标准化、健壮2018-07-19 07:20作者介绍淇公,蚂蚁金服技术专家。热爱java和一些函数式语言,长期关注系统稳定性领域一、差旅随想因为base在分公司,需要经常去总部出差,所以搭乘飞机成了家常便饭,很多时候坐在飞机上会不由的感叹,设计制造这样精密复杂的机器的那帮人真的是了不起,他们是怎样保证这样一台由无数零件组成的设备能够稳定运转的...
Java web 中的Session 1、在web容器中设置例如:tomcat里面的web.xml <session-config> <session-timeout>30</session-timeout> </session-config>默认30分钟,自己修改数字即可2、在工程的web.xml中设置例如:java web 项目中,在W...
Oracle数据库之oracle update set select from 关联更新 本文主要向大家介绍了Oracle数据库之oracle update set select from 关联更新,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。 工作中有个需求,现在新表中有一些数据跟老表的基本一样,这样只需要把老表中数据搬到新表中就可以了,同时把不同的字段修改下数据即可,在修改字段时发 现,需要指定一个条件,比如主键id,来修改某条记录,这样一条一条修改...
Freemaker FTL指令常用标签及语法 FTL指令常用标签及语法注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。freemaker注释:<#-- 注释内容 -->格式部分,不会输出---------------------------------- 基础语法 ----------------------------------1、字符输出${emp.name?if...
第十篇、线性表中的链式存储结构--双链表 第8篇文章中我们介绍了下链式存储中链表中的一种--单链表,但是单链表有一个缺点,就是无法快速访问到前驱结点,当查找到某个元素时,如果想找前边的元素结点,需要再次从头开始遍历,这样就比较麻烦。那么就有人会问,是否可以在结点中再增加一个指针来指向前驱结点呢?答案是肯定的,增加了指向前驱结点的指针的链表称为双链表什么是双链表?双链表,顾名思义就是可以向两个方向走的链表。它的每一个结点...
第九篇、java中ArrayList源码解析 引言如题,为什么今天要给大家介绍java的中的ArrayList的源码呢?因为我毕竟是一个android开发工程师,不能一直给大家通过c语言讲解数据结构呀,java中也存在数据结构知识呢,我们的第7篇文章中介绍了下线性表中的顺序表,今天我们就来介绍一下java中的“顺序表的应用”,即ArrayList。那大家大概猜到了,既然我说ArrayList是顺序表在Java中的应用,那么他内...
第八篇、线性表中的链式存储(链表) 顺序表必须占用一块事先分配好的、大小固定的存储空间,不便于存储空间的管理,为此有人提出可以实现存储空间的动态管理,即链式存储方式——链表。本篇文章将学习下什么是链表,以及链表的实现。链表存储的原理和顺序存储不同,在链式存储中,结点之间的存储单元地址可能是不连续的。链式存储中每个结点都包含了两个部分: 存储元素本身的数据域 存储结点地址的指针域我们在前边讲解连式存储时,提到...
第七篇、线性表中的顺序存储(顺序表) 通过第六篇文章的学习我们知道,线性表分为顺序存储和连式存储两种结构,他们各自有自己的存储特点,在使用上也不同。今天先学习下线性表的顺序存储,即数据结构中的线性表顺序存储的原理我们在前边将学习数据结构的物理结构时,学习到了线性表的顺序存储结构,应该对他的存储原理有所了解了,即顺序存储,就是在存储器中分配一段连续的存储空间,逻辑上相邻的数据元素,其物理存储地址也是相邻的,假如要用顺序...
第六篇、线性表概述(第一个数据结构,也是最简单的数据结构) 前面5篇文章我们讲解了数据结构和算法的一些概述,我们应该对数据结构和算法有了一定的认识了,本篇文章将会带着大家学习最简单的一个数据结构,即如题所述:线性表线性表,顾名思义是像线一样性质的表,他的用处多不胜数,是常用且最简单的一种数据结构。例如,一串英文字母,一队手拉手的小朋友,一份学生成绩单等都可以用线性表来表示。线性表的存储结构有顺序存储链式存储两种,本文章先介绍线性表的...
第五篇、算法概述 引言Niklaus Wirth曾提出了一个程序公式:程序=数据结构+算法。算法是数据结构的灵魂,这句话一点也不为过。一个数据结构设计的再好,如果没有算法,如同失去了灵魂的人,它的存在就毫无意义。将算法和数据结构结合起来,才能对数据结构进行各种运算操作。既然算法如此重要,我们接下来就学习一下什么是算法。算法是什么算法(algorithm)是解决特定问题的步骤描述,简单的说...
第四篇、抽象数据类型 抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在这个模型上的一组操作。抽象数据类型的定义仅仅取决于它的一组逻辑特性,而与它在计算机中的表示和实现无关。抽象数据类型有两个重要特征:数据抽象数据封装数据抽象所谓数据抽象是指用ADT描述程序处理的实体时,强调的是其本质的特征,无论内部结构如何变化,只要本质特性不变,就不会影响其外部使用。例如...
第三篇、数据结构中存储结构 数据结构除了按照逻辑结构来分,还可以按照存储结构来分。存储结构反应的是数据元素在计算机中的存储形式,如何在计算机中正确的描述数据元素之间的逻辑关系,才是数据结构的关键和重点。常用的存储结构有1、顺序存储结构2、链式存储结构3、索引存储结构4、散列表4种,接下来分别介绍一下顺序存储结构顺序存储结构是把逻辑上相邻的结点存储在地址连续的存储单元里,数据元素之...
第二篇、数据结构中逻辑结构 数据结构是相互之间存在一种或多种关系的数据元素的集合,这种关系包含两方面:逻辑关系和存储方式。逻辑关系又称为逻辑结构,用于描述元素之间的逻辑关系;而存储方式描述的是数据元素与数据元素之间的关系,在计算机存储器中的存储结构也称物理结构。ok,即关系图.png逻辑结构逻辑结构反映的是数据元素之间的关系,他们与数据元素在计算机中的存储位置无关,他只是数据结构在用户面前所呈现...
第一篇、数据结构需要知道的基本知识 女神节刚过,我又有了新的计划,如题,就是把数据结构和算法的知识再重新回顾一下,当然有一部分是为了总结知识准备面试,另一方面则是加强、加深自己的编码意识,从数据结构的层面上提升自己的认知。首先来看几个需要知道的基本概念和术语这张图是一份数据对象1、数据数据就是指能直接输入计算机中,被计算机处理的符号和被技术安吉操作的对象。他不仅包含整形,实型等数值数据,也包含声音、视频、图像...
ofbiz的实体引擎orm的性能优化分析 ofbiz的实体引擎orm的性能优化分析ofbiz在使用时,实体引擎的性能和mybatis比起来,差了很多,用在互联网电商和门户网站上,往往发现性能不行,因此,了解ofbiz实体引擎效率不好的原因,从而找到提高ofbiz实体引擎性能的方法,也是必要的1 ofbiz的表结构设计,默认是推荐使用关联的表设计,表和表之间的外健关联关系非常多,这样设计,方便了程序员的开发,提高了编程的效率,但是,...
Java锁Synchronized对象锁和类锁区别 java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,知道线程B释放这个锁,如果B线程不...
Synchronized方法锁、对象锁、类锁区别 (精) 引言synchronized,这个东西我们一般称之为”同步锁“,他在修饰代码块的时候需要传入一个引用对象作为“锁”的对象。 在修饰方法的时候,默认是当前对象作为锁的对象 在修饰类时,默认是当前类的Class对象作为所的对象 故存在着方法锁、对象锁、类锁 这样的概念那么我们来大致看一下这三种锁方法锁(synchronized修饰方法时)通过在方法...
java 常用集合list与Set、Map区别及适用场景总结 list与Set、Map区别及适用场景1、List,Set都是继承自Collection接口,Map则不是2、List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法 ,另外l...
Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有HashSet,LinkedHashSet,TreeSet List下有ArrayList,Vector,LinkedList Map下有Hashtable,LinkedHashMap,HashMap,TreeMap collection接口下...
Java中接口作用深入理解 关于Java中接口作用的深入理解。这是个很容易遇到的问题吧。/ 2019/3/1 补充 : 接口的存在也是为了弥补类无法多继承的缺点,假设一个情况,父类--Animal 子类--Dog、Cat 、People、Sheep、Tiger、Lion。假设在 Animal 中都存在 eat()这个公有的方法。但是 Tiger 和 Lion 、People 还拥有 Hunt 的方法,但是hun...
jQuery序列化表单数据 serialize()、serializeArray()及使用 1、serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。 序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中,这样在ajax提交表单数据时,就不用一一列举每一个参数,只需将data参数设置为:$("form").seri...
JAVA 序列化 Java unserialize serialized Object(AnnotationInvocationHandler、ysoserial) In readObject() LeadTo TransformedMap Change LeadTo InvokerTransformer(Evil MethodName/Args)catalog1. Java 序列化2. Commons...
Java NIO、NIO.2学习笔记 相关学习资料http://www.molotang.com/articles/903.htmlhttp://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html目录1. NIO、NIO.2简介2. NIO中的关键技术1. NIO、NIO.2简介Java中的输入流、输出流都是阻塞式的输入、输出。不仅如此...
Java输入、输入、IO流 类层次关系梳理 本文主要关注在Java编程中涉及到的IO相关的类库、方法。以及对各个层次(抽线、接口继承)的流之间的关系进行梳理相关学习资料http://baike.baidu.com/view/1007958.htm?noadapt=1http://blog.csdn.net/hguisu/article/details/7418161https://www.ibm.com/developerwo...
Java对象锁和类锁全面解析(多线程synchronized关键字) 原文出处: 小宝鸽最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念。最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没用对都不知道。今天把一些疑惑都解开了,写篇文章分享给大家,文章还算比较全面。当然可能有小宝鸽理解得不够深入透彻的地方,如果说得不正确还望指出。看之前有必要跟某些猿友说一下...
一篇笔记整理JVM工作原理 前言:想提高Java开发,了解jvm是必不可少的。它让开发者了解他们的代码,jvm是如何变异与运行。深入了解jvm:会让你的代码写的高效,逐步成为大神下面介绍jvm的基本知识>>数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不...
jdk与jre及 java javac命令 一、关于jdk、jre官网描述:JDK是JRE的超集,也就是只要JRE有的JDK都有,同时JDK还提供了java程序开发过程中的编译器和调试器。JRE提供java基础类库,java虚拟机(JVM)等,能运行java编程语言编写的应用程序。。。1.JVM -- java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的jav...
ofbiz的simple-methods单表方法 <?xml version="1.0" encoding="UTF-8"?><simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd...
ofbiz的simple-methods单表方法 <?xml version="1.0" encoding="UTF-8"?><simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd...
Apache软件基金会 Apache软件基金会顶级项目 ▪ ActiveMQ ▪ Ant ▪ Apache HTTP Server ▪ APR ▪ Beehive ▪ Camel ▪ Cassandra ▪ Cayenne ▪ Cocoon ...
activemq + spring 配置内置(内嵌)vm <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springfr
Java消息队列--ActiveMq 初体验 1、下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux、Unix 等几个版本,楼主这里选择了Linux 版本下进行开发。 下载完安装包,解压之后的目录: 从它的目录来说,还是很简单的: bin存...
spring中bean配置和bean注入 1 bean与spring容器的关系Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注 册表加载、实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用。1 bean配置bean配置有三种方法:基于xml配置Bean...
IOC 的理解与解释 IOC 的理解与解释 IOC 是什么?Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对 象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们 来深入分析一下: ...
Java 彻底弄明白synchronized的使用 多个线程访问共享资源(临界资源)的时候,会出现线程安全问题,安全问题大多数是可见性和原子性问题。但这样说可能并不严谨,线程的安全性可能更在于他对错误性的定义,当多个线程访问一个类时,如果可以需要考虑运行时环境的调度和交换,并且需要额外的同步保证结果正确,我们认为这个线程是有线程安全性问题的。下面我们讨论一下可见性和原子性带来的线程安全问题。可见性的问题例如执行多个线程执行a++,那么多个线...
window.print() function printTemplete(contractNum,path) { var headstr = ""+contractNum+"" + ""+ ""+ ""+ ""+ ""+ ""+ ""+ "br.pageEnd {page-break-after:always}"+
常见的JavaScript易错知识点整理 前言本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript知识点1.变量作用域var a = 1; function test() { var a = 2; con
处理百万级以上的数据提高查询速度的方法 1.应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num
线程讨论 一、出处:http://bbs.csdn.net/topics/350061946观点1比如说你的程序要从远程接收一个很大的图片,然后显示出来。你不太好一直在那里等接收完然后显示,这时候可以用多线程,开个线程专门接收图片,然后你的主线程可以继续做你自己的事情。当图片接收完了才开始显示。一般情况下,在用户界面处理中,涉及到需要较长时间等待的操作,可以以多线程来完成,而不用去等待完成后...
线程同步 作者 : buaawhl我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上...
Java 动态类加载与重载 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)内容索引类加载器类加载体系类加载动态类加载动态类重载自定义类重载类加载/重载示例Java 允许你在运行期动态加载和重载类,但是这个功能并没有像人们希望的那么简单直接。这篇文章将阐述在 Java 中如何加载以及重载类。 你可能会质疑为什么 Java 动态类加载特性是 Java 反射机制的一部
Java 反射 - Java 动态代理 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)内容索引创建代理 InvocationHandler 接口常见用例数据库连接以及事物管理 单元测试中的动态 Mock 对象 自定义工厂与依赖注入(DI)容器之间的适配器 类似 AOP 的方法拦截器利用Java反射机制你可以在运行期动态的创建接口的实现。 java.lang.reflect....
Java 反射 - Java 数组 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)内容索引java.lang.reflect.Array 创建一个数组 访问一个数组 获取数组的 Class 对象 获取数组的成员类型利用反射机制来处理数组会有点棘手。尤其是当你想要获得一个数组的 Class 对象,比如 int[] 等等。本节会讨论通过反射机制创建数组和如何获取数组的 Class...
Java 反射 - Java 泛型 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)内容索引运用泛型反射的经验法则 泛型方法返回类型 泛型方法参数类型 泛型变量类型我常常在一些文章以及论坛中读到说 Java 泛型信息在编译期被擦除(erased)所以你无法在运行期获得有关泛型的信息。其实这种说法并不完全正确的,在一些情况下是可以在运行期获取到泛型的信息。这些情况其实覆盖了一些我们...
Java 反射 - Java 注解 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)内容索引什么是注解 类注解 方法注解 参数注解 变量注解利用 Java 反射机制可以在运行期获取 Java 类的注解信息。什么是注解注解是 Java 5 的一个新特性。注解是插入你代码中的一种注释或者说是一种元数据(meta data)。这些注解信息可以在编译期使用预编译工具进行处理(p...
Java 反射 - Java 私有变量和私有方法 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)内容索引访问私有变量 访问私有方法在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java 反射机制可以做到这一点。使用这个功能并不困难,在进行单元测试时这个功能非常有效。本节会向你展示如何使用这个功能。注意:这个功能只有在代码运行在单机 Java 应用(standalone Ja...
Java 反射 - Java 访问器 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)使用 Java 反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,使用这个功能同样可以获取指定类的 getters 和 setters,你不能直接寻找 getters 和 setters,你需要检查一个类所有的方法来判断哪个方法是 getters 和 setters。首先让我们来规定一下 ge...
Java 反射 - Java 方法 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)内容索引获取 Method 对象 方法参数以及返回类型 通过 Method 对象调用方法使用 Java 反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,通过使用 java.lang.reflect.Method 类就可以实现上述功能。在本节会带你深入了解 Method 对象的信息。...
Java 反射 - Java 变量 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)内容索引获取 Field 对象 变量名称 变量类型 获取或设置(get/set)变量值使用 Java 反射机制你可以运行期检查一个类的变量信息(成员变量)或者获取或者设置变量的值。通过使用 java.lang.reflect.Field 类就可以实现上述功能。在本节会带你深入了解 Field 对象...
Java 反射 - Java 构造器 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)内容索引获取 Constructor 对象 构造方法参数 利用 Constructor 对象实例化一个类利用 Java 的反射机制你可以检查一个类的构造方法,并且可以在运行期创建一个对象。这些功能都是通过 java.lang.reflect.Constructor 这个类实现的。本节将深入的阐...
Java 反射 - java 类 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)使用 Java 反射机制可以在运行时期检查 Java 类的信息,检查 Java 类的信息往往是你在使用 Java 反射机制的时候所做的第一件事情,通过获取类的信息你可以获取以下相关的内容:Class 对象 类名 修饰符 包信息 父类 实现的接口 构造器 方法 变量 注解除了上述这...
Java 反射 - 指南 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)该系列文章中所描述介绍的是 Java 6 版本的反射机制。Java 反射的例子下面是一个 Java 反射的简单例子:Method[] methods = MyObject.class.getMethods();for(Method method : methods){ System....
Java 反射-关于 Java 反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值。Java 反射机制功能强大而且非常实用。目前在互联网上已经有不胜枚举的 Java 反射指南,然而大多数的指南包括 Sun 公司所发布的反射指南中都仅仅只是介绍了一些反射的表面内容...
MySQL函数 MySQL数据库提供了很多函数包括:数学函数;字符串函数;日期和时间函数;条件判断函数;系统信息函数;加密函数;格式化函数;一、数学函数 数学函数主要用于处理数字,包括整型、浮点数等。函数作用ABS(x)返回x的绝对值 SELECT ABS(-1) -- 返回1CEIL(x),CEILING(x)返回大
存储过程语法(MySQL) 存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。--------------------基本语法--------------------一.创建存储过程create procedure sp_name()begin.........end二.调用存储过程1.基本语法:call sp_name()注意:存储过
MySQL存储过程中的错误处理 当MySQL执行存储过程遇到错误时,适当处理它,如继续执行或退出当前代码段,并返回有意义的错误提示是很重要的。一方面提高程序的容错能力,另一方便当程序出错时,开发人员也能准确定位错误的地方。在本章MySQL教程中,我们将学习如何在存储过程中处理程序错误。声明处理程序MySQL为我们提供了一种简单的方法定义处理程序,我们可以使用DECLARE HANDLER语句,
MyBatis的foreach语句详解 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符...
技术普及帖:你刚才在淘宝上买了一件东西 原文链接你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com。这时你的浏览器首先查询DNS服务器,将www.taobao.com转换成ip地址。不过首先你会发现,你在不同的地区或者不同的网络(电信、联通、移动)的情况下,转换后的IP地址很可能是 不一样的,这首先涉及到负载均衡的第一步,通过DNS解析域名时将你的访问分配到不同的入口,同时尽可能保证你所访问
数据库连接池的选择 Druid 我先说说数据库连接数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名、密码了,然后我们就可以打开门去任意的存取东西了。这个时候,我们与数据库之间的连接就是「数据库连接」。这个时候问题就来了,当我们仅仅只需要去取一个东西的时候,我们取完东西随手关上门,然后拔出钥匙,这完全是再正常不过的流程了,完全没毛病,但是,...
Spring 集成 ActiveMQ 配置(二) 从上一篇开始说起上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置,以及我们的多队列配置、断线重连机制,当然还有的生产者及消费监听者的具体代码实现。ActiveMQ 是 Apache 出品,最流行的、能力强劲的开源消息总线。ActiveMQ 是一个...
Spring 集成 ActiveMQ 配置(一) 你家小区下面有没有快递柜近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了。对,我说的就是类似快递柜、菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快递让你签收的形式,变为了你下班后去指定地方输入验证码取出你的快递就行了,再也不用麻烦保安大哥或者寄到公司后再带回家去,这个改变你不感觉大大方便了我们这些剁手党么?并且如果你买的是什么见不...
Spring 集成 Memcached 配置(二) Memcached 客户端选择上一篇文章从零开始学 Java - Spring 集成 Memcached 配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个:Memcached Client for Java SpyMemcached XMemcached他们的对比与性能我这里不讨论,想了解自己搜索查看,我这里使用的是XMemcached,据说它的并发效...
Spring 集成 Memcached 配置(一) 硬盘和内存的作用是什么硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片、视频、各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里,不会无辜地消失掉。那内存是用来做什么的呢?我是不能准确的描述出来,所以我抄袭了下面描述内存作用的一段话:内存就是暂时存储程序以及数据的地方,比如当我们在使用 WPS 处理文稿时,...
利用 Nginx 负载均衡实现 Web 服务器更新不影响访问 还记得那些美妙的夜晚吗你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见了。这时候你瞬间没有了看电影的兴致了,这应该就是一个运维人员的日常了吧!为什么要在凌晨时分去更新服务器?做过 Web 开发的应该都明白,可能尽管你开发的系统并没有多少用户在使用,但是,你依然不...
Spring MVC 统一异常处理 看到Exception这个单词都心慌如果有一天你发现好久没有看到Exception这个单词了,那你会不会想念她?我是不会的。她如女孩一样的令人心动又心慌,又或者你已经练功到了孤独求败,等了半辈子终于看到了她,这时候你的小弟准备冲上去解决它说:大哥,我来解决它。你摆摆手说:还是我来最后一次吧...从此,你再也没看到过Exception了。异常是个好东西做开发的对异常在熟悉...
log4j 项目中的详细配置 日志存在的意义毫无疑问,日志的意义就是为了记录。记录下程序执行的过程、调试信息、错误信息以及我们想要输出的信息,这可能就是一个最简单且完整的日志系统了,正常来说,我们的项目中一般并不会有一个强大的监控系统以及日志系统,最多是写一个log文件,然后打印出错误信息,其实,对于一个对监控要求不是很高,没有太多开发时间的互联网项目,这个简单的 log 文件就够了,完全可以满足我们的需要。Java ...
Spring 使用 Quartz 任务调度定时器 Quartz 任务调度是什么Quartz 是 OpenSymphony 开源组织在 Job scheduling 领域又一个开源项目它可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。Quartz 是一个完全由 Java 编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能,但就其简易形式看,你会发现它易用得简直让人受不了!摘自百...
Spring 支持 CORS 请求踩的坑 我来就讲讲思路上一篇从零开始学 Java - Spring MVC 实现跨域资源 CORS 请求中使用简单的配置后即可实现跨域请求,但是,我在走向配置成功的路上由于我瞎,掉进了一个大坑,因为是 Spring MVC 版本 4.2 及以上才支持 CORS 配置,所以,我下载了 4.2.5 配置后一直报错,接着我下载了 4.2.6 版本依然报这样的错误报错信息具体代码如下:...
Spring MVC 实现跨域资源 CORS 请求 什么是 CORS ?跨来源资源共享(Cross-origin resource sharing)是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方...
Spring AOP 实现用户权限验证 每个项目都会有权限管理系统无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录、权限管理这些必不可少的业务逻辑。有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就算这样,但你肯定也会有后台管理及登录功能。每个项目中都会有这些几乎一样的业务逻辑,我们能不能把他们做成通用的系统呢?AOP 实现用户权限验证在从零开始学 Java - Spr...
Spring 一主多从、多主多从 数据库配置 一、新建jdbc.properties配置文件master.jdbc.driverClassName=com.mysql.jdbc.Drivermaster.jdbc.url=jdbc:mysql://127.0.0.1:3306/springdemo?useUnicode=true&characterEncoding=UTF-8master.jdbc.username=rootmaster.
Spring AOP 实现主从读写分离 深刻讨论为什么要读写分离?为了服务器承载更多的用户?提升了网站的响应速度?分摊数据库服务器的压力?就是为了双机热备又不想浪费备份服务器?上面这些回答,我认为都不是错误的,但也都不是完全正确的。「读写分离」并不是多么神奇的东西,也带不来多么大的性能提升,也许更多的作用的就是数据安全的备份吧。从一个库到读写分离,从理论上对服务器压力来说是会带来一倍的性能提升,但你仔细思考一下,你的应用服务器真...
Spring AOP 拦截器的基本实现 什么是 AOP ?AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生范型。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程...
搭建 SpringMVC 框架 如果创建一个 Spring 项目Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话,那可真令人忧伤。1.在 MyEclipse 创建项目后,可以以选择的方式去配置一个 Spring 项目,这里不在讨论。因为我只用 Eclipse。2.手动搭建。就是动手。新...
Windows 下安装 Tomcat 官网下载你是 Windows 环境,所以,打开浏览器,输入地址:http://tomcat.apache.org/download-70.cgi选择对应的..-bit Windows zip下载就可以了。安装找到你下载的 ZIP 包,解压到你认为合适的目录,其实这是免安装版。启动进入bin目录,找到startup.bat双击,这样就算启动了 Tom...
Windows 下安装 JDK 官网下载直接打开官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html我安装的是 1.7 版本,当然,你可以选择自己合适版本。安装下载的是.exe文件,没什么好讲的,都是直接下一步下一步。当然,你可以选择合适的安装路径,我选择了F:\Java。接着选择...
CentOS 下 Nginx + Tomcat 配置负载均衡 为什么要做负载均衡?当你网站是一个企业站、个人博客的时候,或者访问量比较小的时候,一台服务器完全应付的了,那就完全没必要做负载均衡。但是,如果你的网站是平台级别,用户至少百万级别了,一台服务器明显撑不住了,那就要考虑多台服务器,这个时候每个服务器分配多少用户,负载均衡是最好的解决方式。举个大的不是很恰当的栗子:淘宝网。对于互联网服务,负载平衡器通常是一个软体程序,这个程序侦听...
CentOS 下安装 Nginx 安装所需环境nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 Centos 7 作为安装环境。一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:yum install gcc-c++二. PCRE pcre-devel 安装...
CentOS 下安装 Tomcat 官网下载1.直接下载.tar.gz安装包,地址:http://tomcat.apache.org/download-70.cgi2.使用wget命令下载(推荐)。wget -c http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz解压依然...
CentOS 安装 JDK 我们需要一些工具人和动物的区别是会制作和使用工具。以下所有在 CentOS 系统下的操作全部使用的是 Xshell 5 和 Xftp 4 ,之后的文章就不再唠叨了。没有使用 putty 是因为这两个工具配合使用更舒服,敲命令、传文件、修改文件一气呵成,丝毫不拖泥带水,就是长这个样子:用 Xshell 登录上 CentOS ,就可以开始了。官网下载1.直接下载.tar
log4j 项目中的详细配置 日志存在的意义毫无疑问,日志的意义就是为了记录。记录下程序执行的过程、调试信息、错误信息以及我们想要输出的信息,这可能就是一个最简单且完整的日志系统了,正常来说,我们的项目中一般并不会有一个强大的监控系统以及日志系统,最多是写一个log文件,然后打印出错误信息,其实,对于一个对监控要求不是很高,没有太多开发时间的互联网项目,这个简单的 log 文件就够了,完全可以满足我们的需要。J
最详细的Log4j使用教程 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。一、入门实例1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下2、src同级创建并设置log4j.proper
30 个java编程技巧(最佳实践的初学者) 1.return 一个空的集合,而不是 null如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素。这样你就不用去写一大堆 ”if else” 判断null元素。Java 的标准库设计者已经在 Collections 类中放了一个空的 List 常量 EMPTY_LIST,除此之外,还有 EMPTY_MAP, EMPTY_SET,真是贴心。2.
mybatis association 映射:同文件中的使用 selectUserRoles">select * from po_userwhere sUserID = #{sUserID}selectUserRoles" parameterType = "String" resultType="String">SELECT sRoleName FROM po_userrole WHERE sUserID = #
windows下获取github的paf.js 1.安装github和node,略过注:github比较慢,建议直接在网上下载一个可直接安装的文件2.按照https://github.com/mozilla/pdf.js的说明,两个步骤:步骤一、Getting the Code目标目录为:D:\project\pdfJS通过cmd,在目标目录下运行:git clone git://github.com/m
FineReport打印方式(转) 1. 报表打印机制各种打印的运行机制,都是选择打印时,先根据报表内容,在服务器的内存中将页面中的内容全部生成完毕,即生成对应格式的对象;然后再由serverlet直接推送给客户端,最后根据选择的打印方式打印出来。2. 报表打印方式FineReport打印方式分为客户端打印和服务器端打印:服务器端打印:使用报表应用所在的服务器,连接的打印机进行打印;客户端打印:使
Java报表小记之 JasperReports & iReport(转) 前言说到Java报表工具,我接触过的只有FineReport(帆软)和JasperReports,这两个都用过,帆软是收费的而JasperReports是免费的,首先第一感觉帆软功能强大,支持导出的报表格式丰富,但是坑很多(一个格子的属性设置不对整个报表都会乱掉,比如左父格什么的,而且有时少量数据测试是没问题但数据量一大报表就乱掉了,不管什么原因引起,首先这就直接导致不容易发现问题,去年项
JAVA运行时报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 一、报错内容控制台:SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListenerjava.lang.ClassNotFoundException: org.springframework.web.context.ContextLoa...
Java开发中的23种设计模式详解(转) 设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真