本文以用户注册后为用户发送一封邮件为例子,讲述如何在Spring中使用FreeMaker或Vilocity发送邮件。 Spring配置文件:<!-- 使用Spring封装的Mail Sender --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.163.com"/> <propert Read More
posted @ 2011-07-23 19:15
七郎
Views(3240)
Comments(0)
Diggs(0)
前几天看到Hibernate与Lucene的整合框架Hiberate Search3.0.0.GA版出来了,昨天试这写了一个Demo,感觉用起来的确很方便的,贴出来与大家分享一下。1、创建POJOpackagecom.yehui;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjav Read More
posted @ 2011-07-23 19:14
七郎
Views(2302)
Comments(0)
Diggs(1)
Ctrl+1快速修复(最经典的快捷键,就不用多说了)Ctrl+D:删除当前行Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑当前行和上面一行交互位置(同上)Alt+←前一个编辑的页面Alt+→下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter显示当前选择资源(工程,or文件or文件)的属性Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter在当前行插入空行(原理同上条)Ctrl Read More
posted @ 2011-07-23 16:50
七郎
Views(176)
Comments(0)
Diggs(0)
今天看到了有关Java运行时方面的一个方法getSomeValue(String propertyName,Object obj),大体上功能是根据一个对象的字段名称和该对象去获得该字段实际运行时的值。里面除了一些逻辑操作外,主要是用到了java.lang.reflect.Method类的invoke(Objectobj, Object...args)方法,看了一下jdk的说明,还是一头雾水,决定自己写个小例子研究一下~ 首先简单介绍一下Java的运行时机制,程序运行时,java运行时系统一直对所有的对象进行所谓的运行时类型识别(RTTI),以确定每个对象所属的类。JVM通常使用运行时类型信息 Read More
posted @ 2011-07-23 16:20
七郎
Views(528)
Comments(0)
Diggs(0)
在方法调用时,需要根据方法声明传入适当的参数,通过每次调用方法时传参,极大的增强了方法的统一性,避免了方法内部功能代码的重复。但是在实际传递参数时,如果在方法内部修改了参数的值,则调用时使用的变量是否发生改变呢? 例如如下代码: /** * 参数传递代码示例 */ public class TransferValueDemo { public static void main(String[] args) { int m = 10; int[] a = {1,2,34}; test(m,a); System.out.println(m); System.out.println(a[0]); } Read More
posted @ 2011-07-23 16:19
七郎
Views(10180)
Comments(0)
Diggs(0)
通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。 以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如: synchronized(obj){ Read More
posted @ 2011-07-23 16:13
七郎
Views(526)
Comments(0)
Diggs(0)
对于旧有系统的改造和升级,最苦恼的莫过于跨平台,跨语言。我的一个朋友最近从Java专向了专攻.NET——因为.NET的CLR既有类似Java虚拟机概念这种已经被证明很成功的底层托管能力。又对于Windows的就有桌面应用提供了良好的兼容。最近我的一个个人项目也面临着这样的需求。一个C语言开发的中间件,通过API暴露给二次开发及插件应用。现在由于对其应用的需求变得日趋复杂,而且正在脱离Unix的管理环境,走向基于JWS这样的BCS管理。有朋友推荐我用JNI,但这样一是增加了耦合度,二是让Java睡在JNI感觉不太安稳。在认知了上下两层的系统平台后,问题变得明朗起来:如何在HTTP协议下实现Jav Read More
posted @ 2011-07-23 16:07
七郎
Views(396)
Comments(0)
Diggs(0)
简述众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,下皆以windows平台为例,linux下和solaris下其实类似,为:libjvm.so),这个动态连接库才是java虚拟机的实际操作处理所在。文探究java.exe程序是如何查找和装载jvm.dll动态库,并调用它进行class文件执行处理的。源代码本文分析之代码,《JavaTM 2 SDK, Standard Edition, v1.4.2fcsCommunity Source Release》,可从sun官方网站下载,主分析的源代 Read More
posted @ 2011-07-23 16:07
七郎
Views(2800)
Comments(0)
Diggs(0)
1 Java技术与Java虚拟机说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:图1 Java四个方面的关系运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。从上图也可以看出Java平台由Java虚拟机和 Java应用程序接口搭建,Java语言则是进 Read More
posted @ 2011-07-23 16:06
七郎
Views(411)
Comments(0)
Diggs(0)
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloaderbootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类。在Sun的JVM中,在执行java的命令中使用-Xbootclasspath选项或使用 - D选项指定sun.boot.class.path系统属性值可以指定附加的类。这个加载器的是非常特殊的,它实际上不是 java.lang.ClassLoader的子类,而是由JVM自身实现的。 Read More
posted @ 2011-07-23 16:06
七郎
Views(15041)
Comments(0)
Diggs(3)
1.编写java程序,1.1java 代码(Student.java)/****/packagejni; /***@authorlikun**/publicclassStudent{ Stringname; intage; publicStudent(){ } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicStr Read More
posted @ 2011-07-23 16:03
七郎
Views(1762)
Comments(0)
Diggs(1)

浙公网安备 33010602011771号