- 浏览: 278688 次
- 性别:
- 来自: 上海
最新评论
-
付小忠:
牛逼,解释到了点子上.
JAVA CAS原理深度分析 -
yhxf_ie:
csdn那些鬼转载都不注明出处的,这应该是原文了。
JAVA CAS原理深度分析 -
qq569349370:
终于找到一篇说得比较清楚的了,其他好多都是扰乱视听
JAVA CAS原理深度分析 -
lovemelong:
nice
JAVA CAS原理深度分析 -
Tyrion:
写的不错!
JAVA CAS原理深度分析
文章列表
首先介绍下Email的发送流程:
需要选中smtp邮件服务器,Yahoo不提供免费的smtp服务器,Gmail的可以;需要接送邮件就需要配置pop服务器,Yahoo支持免费
的pop服务器,Gmail一样支持。
介绍下在OutLook中配置Gmail的邮件服务,gmail的smtp端口是465,需要ssl连接,pop是995也是ssl连接,并且需要服务器
身份验证(这个需要在outlook中勾选)。配置好后可以发送和接收和邮件了。
下面说下如何用java发送邮件:
Spring的配置文件中初始化 JavaMailSenderImpl或者直接在类中new都可以
<bean ...
方法很简单:
1. 首先RunWith指定是用Spring的Unit Test
2. ContextConfiguration指定读取Spring 配置
3.
TransactionConfiguration指定Transaction的管理,defaultRollBack指定数据不回滚,默认是true,
跑完case后数据回滚。
@Test
用于标记TestCase
以下列举出了主要的annotation。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "ap ...
对于Spring的一个注册容器相当于一个事务,所以其中的方法调用
都在一个事务当中。
对于Spring注册的容器才能使用事务
对于事务Propagation.REQUIRED是将注册方法的事务加入到调用者的事务当中形成一个事
务;Propagation.REQUIRES_NEW是将注册方法的事务执行完毕后再执行调用者的事务,是两个事务。
示例:
容器A中
@Transactional(rollbackFor=MyException.class,
propagation=Propagation.REQUIRES_NEW)
public void test ...
spring包装了Quartz,是我们可以基于xml配置实现quartz。
首先说明必要的3个角色:
Job:是执行的业务逻辑,可以把类封装成job或则仅仅封装一个类中方法。Trigger:是调度的触发器,暂时暂时只能是时间。
Scheduler:调度器,将trigger都放入其中。
Job需要使用其他的service方法则需要将applicationContex注入类中,再得到service类或者将将类直接注入Job
中。
具体的配置(载录网络内容http://tech.it168.com/oldarticle/2007-04-25
/200704250927125.shtml) ...
泛型用法一:定义在类开始处.
public class A <T> () {}
这样一来在class内部可以自由使用T作为一个具体的类。那么在class定义时再需要制定T的具体类型,这样可以提高A类的中方法的重用性,写出通用
方法。
用法二:在方法创建时定义泛型. public <T> T get(T t) {}. 这样的好处第一可以避开1
组合模式:
组合模式可以形象的比如成树,有叶子节点(Leaf),树枝节点(Composite),这两个节点都需要继承节点的属性(Component),
这样用户使用起来才能达到透明性。且需要具备子节点的管理特点。
子节点管理操作的不同可以分 ...
Spring的proxy类是通过JDK的Proxy类或者CGLIB实现的。
分别介绍下两种方式:
CGLIB是一个动态字节码生成库, 基于ASM。
原理是通过动态地修改class文件,创建需要的类。比如:现有classProxyCglib类,
有方法printCglib,需要为这个类创建代理则只要通过class文件得到Proxy类并且得到printCglib的位置,在此方法前加入
printHelloWorld,这样可以实现AOP功能。
JDK的Proxy类是在java.lang.reflect下,
此方法生成Proxy需要针对接口编程,通过接口实现Proxy效果。
...
最近学习了一些企业系统开发当中的配置,比较专业,作为完整开发的必备步骤是不可缺少的,其中包括批处理环境变量
的设置,将环境
变量传入服务器变量
,将服务器变量传入程序
。
1. 目录结构:这样结构比较清晰,也易于调试
——项目名(根目录)
————批处理文件(启动数据库,进入数据库,启动系统)
————logs(需要将服务器的log配置在根目录下)
————config(此文件夹包含项目的配置文件,模板,以及使用到的文件)
————data(包含项目产生的文件)
————programs(包含项目系统必要的工具,比如java,db,server)
这样就形成了一个完整的 ...
首先必须说的是IE6真得很垃圾,存在太多让人意想不到的bug,但是他主流所以没办法。
1. 首先是position:fixed属性,在ie6中没有这个属性,所以需要在ie6中实现可以有2种方式:
a. js方式实现,这样的好处不会影响其他元素,缺点会有dom移动的痕迹,毕竟是监听滚轮移动不是实时触发的。
实现过程:例如现在想让dom时刻现实在窗口底端,那么需要监听滚轮移动实时修改dom的top值。
dom设置成position=absolute。
具体代码:
function position_fixed(el){
// chec ...
在网上看到有不少没用过的技巧,抄下来,以免忘记!
到
http://jquery.com/demo/thickbox/
下载需要的js及css文件
分别保存到目录
--js
--css
--images
中,
使用thickbox提供的方法,可以更加自由的用js控制元素动作:
1. tb_init() ...
下午有时间研究了下一直有点畏惧的css,不错还是挺简单了的,以前也接触过很多,现在系统的学习了下:
1. 首先是css的选择器和JQuery几乎一样,也可以说JQuery学Css的。
ID选择器(#),类选择器(.),dom类型选择器(type),还可 ...
Double,Float都是由2进制数表示10进制的数,所以很多10进制数表示不完全,如0.3F实际上是 0.300000011920928955078125,所在在计算以及比较的时候会出错。解决这样的方法有2种:
一. 将Double, Float在计算的时候先转换成String然后传入Big ...
//在DOS界面中设变量
set @i=0;
update 表名 set 字段名 = concat('all_',(@i:=@i+1)) where name = 'All';
//表的级联操作(select)
select c.字段名, b.id from 表名1 c, 表名2 a, 表名3 b where a.字段名 = c.id and a.字段名 = b.id and b.字段名 like '%all%';
//表的级联操作(update)
update 表名1 a, 表名2 b, 表名3 c set a.字段名 = concat('all_',c.code,b.code) whe ...
import java.io.IOException;
import java.util.Arrays;
import net.paoding.analysis.analyzer.PaodingAnalyzer;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apach ...