- 浏览: 35628 次
- 性别:
- 来自: 成都
最新评论
-
lkl:
很好的一篇文章
hibernate 和 spring 整合的事物管理
文章列表
JAVA常用加密技术加密
最近看到公司一个以前项目的MD5加密方式,让我对JAVA加密感觉到一些兴趣,但是公司的MD5加密是自己写的一个MD5工具类算法类进行加密。但窝了解到一些其他的加密方式。
一、DES加密
DDES(Data Encryption Standar 数据加密标准算法)是一种常见的对称密钥加密算法,加密者使用密钥对原文加密,解密者必须使用相同的密钥才能对密文进行解密。
重点在KeyGenerator、Cipher、和Key类的使用
import java.io.FileInputStream;
impo ...
在我们实际工作中,可能会经常对JVM有一些设置,但是很多设置都是知其然不知其所以然,今天找了下资料,归纳一下:
-Xms:java Heap初始大小, 默认是物理内存的1/64。
-Xmx:ava Heap最大值,不可超过物理内存。
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一 。增大年轻代后,将会减小年老代大小,可以根据监控合理设置。
-Xss:每个线程的Stack大小,而最佳值应该是128K,默认值好像是512k。
-XX:PermSize:设定内存的永久保存区初始大小,缺省值为64M。
-XX:MaxPermSize:设定内存的永久保存区最大大小 ...
转载:
(一)深入浅出理解索引结构
实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类 ...
之前由于工作需要,也接触到一些webService相关的开发,但是自己一直对webService不是很理解,自己几次使用webService感觉效果也不是很理想,感觉效率较低,后面都是使用httpClient来实现 交互,在最近看了《java中间件》中关于we ...
JAVA RMI相关
分布式计算是解决大型应用的一种重要手段。它指的是一种应用程序的设计模式,其中的程序,所处理的数据和计算能力都分布于网络中。这样可以很好地平衡各个计算机的处理能力。
套接字:套接字(socket)为两台计算机之间的通信提供了一种机制,让您不必了解底层操作系统的细节就能有效地使用套接字,使用套接字是实现程序间通信最为灵活和强大的方式,但是它必须通过应用级协议进行通信,要求应用程序之间使用同样的协议,并且要求设计通信过程中的错误判断。
JMS(JAVA MESSAGING SERVICE),采用JMS 服务,对象是在物理上被异步从网 ...
经常使用hibernate,在使用hibernate的时候经常使用到DBCP和C3P0的连接池,某天自己突然想起自己来实现一个连接池。test了下,效果还可以,随记录之
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Stack;
public class ConnManager {
private static final int MIN_CONN = 2;
private static final int MAX_CONN = 5;
private sta ...
有的时候,页面上的下载文件是从后台使用流的形式下载来的,而不是直接使用src,这样有很多好处,资源的路径是隐藏的了,不会再页面处就可以查看到资源。
原理:浏览器接收到后台传来的信息首先要解析的是:content-type,,然后处理数据。这里需要设置content-type为application/zip.浏览器接收到这个content-type就会认为它是一个二进制的压缩文件,就会在窗口提示下载,当然这个文件的content-type可以并不一定是zip压缩文件,可以是任何形式的文件,浏览器只解析服务器告诉它的content-type而不会去解析这个文件用来检查服务器是否欺骗它,它对服务器 ...
package sterning;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerTest {
int port = 8821;
void start() {
...
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA1、消息摘要算法。
Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA1结果。
1.字符串的MD5
public static String stringMD5(String input) {
try {
...
在多线程的开发中经常会碰到数据的并发修改,并发存取,因此正确的使用不同的容器很关键,直接影响到数据的正确性。下面主要记录下三种重要的队列,以及一种非常使用的 双端队列 。
1、同步容器
主要 ...
最近在看java设计模式,看到builder模式感觉十分不错,遂记之,以加深理解和学习、、
public class Hero {
private final Profession profession;
private final String name;
private final HairType hairType;
private final HairColor hairColor;
private final Armor armor;
private final Weapon weapon;
public Profession getProfes ...
1、compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable<T>接口的,必须重写public int compareTo(T o)方法,比如MapReduce中Map函数和Reduce函数处理的 <key,value>,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable<T>接口,实现这个接口可同时用于序列化和反序列化。WritableComparable<T>接口(用于序列化 ...
在编程中我们经常遇到:ClassNotFoundException / NoClassDefFoundError / NoSuchMethodError / NoSuchMethodException这几个异常和错误。
这事由于jvm加载机制不同引起的,如果我们知道这些知识就能快速判断出问题出在哪儿。
ClassNotFoundException:
当应用程序试图通过类的字符串名称,使用以下三种方法装入类,但却找不到指定名称的类定义时抛出该异常,是显式类装载的抛出的异常。
类 Class 中的 forName() 方法。
类 ClassLoad ...
声明意味着我们告知spring某个bean的某个方法需要事物管理,之后spring就会保证此方法被调用时,会有对应的事物贯穿其中。次实现方式完全依赖AOP对方法进行拦截。
声明式事务的最大好处在于我们无需修改既有代码。方法实现过程中,我们压根无需为其添加事务管理支持。
xml配置
//..省略
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager& ...
由于以前没有深入接触到spring,对spring的事物支持不了解,以前自己参与的一些系统中,出现过在业务逻辑层一个小步出错,但是前面的步骤已经持久化,不能回滚。只能通过定时器读取日志,发现出错就删除这条记录。在最近较为深入的了解spring,发现spring对事物的支持能解决这一问题。
一、如果多个数据源(使用spring的jta事物管理策略)
org.springframework.transaction.jta.JtaTransactionManager代理了J2EE容器的JTA子系统,提供了跨越多个资源的分布式事物管理能力,这种事物管理策略必须运行在J2EE应用服 ...