« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9713085 建立时间:2004年12月20日 |

| |
[j2ee]spring的FactoryBean的使用 原创空间, 软件技术
邢红瑞 发表于 2005/10/7 11:33:19 |
spring的FactoryBean的功很强大,尤其用于Singleton模式,注意不是beanFactory下面给个md5加密后,再使用base64加密的例子,这个例子是网上找的,经过我的修改MessageDigestFactoryBean.javaimport java.security.MessageDigest;
import org.springframework.beans.factory.FactoryBean;import org.springframework.beans.factory.InitializingBean;
public class MessageDigestFactoryBean implements FactoryBean, InitializingBean {
private String algorithmName = "MD5";
private MessageDigest messageDigest = null;
public Object getObject() throws Exception { return messageDigest; }
public Class getObjectType() { return MessageDigest.class; }
public boolean isSingleton() { return true; }
public void afterPropertiesSet() throws Exception { messageDigest = MessageDigest.getInstance(algorithmName); }
public void setAlgorithmName(String algorithmName) { this.algorithmName = algorithmName; }
}
MessageDigester.javaimport java.security.MessageDigest;
import sun.misc.BASE64Encoder;
public class MessageDigester {
private MessageDigest digest = null;
public void setDigest(MessageDigest digest) { this.digest = digest; }
public String digest(String msg) {
return digest(msg, digest);
}
private String digest(String msg, MessageDigest digest) {
digest.reset(); byte[] bytes = msg.getBytes(); byte[] out = digest.digest(bytes); BASE64Encoder enc = new BASE64Encoder(); return enc.encode(out); }}
配置文件 <bean id="md5Digest" class="com.xxx.auth.util.MessageDigestFactoryBean"> <property name="algorithmName"> <value>MD5</value> </property> </bean>
<bean id="digester" class="com.xxx.auth.util.MessageDigester"> <property name="digest"> <ref local="md5Digest"/> </property>
</bean>使用spring的IOC机制<property name="digester"> <ref local="digester" /></property> public MessageDigester getDigester() { return digester; }
public void setDigester(MessageDigester digester) { this.digester = digester; }
private MessageDigester digester;使用代码 thepassword = digester.digest(thepassword);可以轻松的改为SHA-1加密
|
|
回复:spring的FactoryBean的使用 原创空间, 软件技术
兰若水(游客)发表评论于2008/4/25 11:43:58 |
|
» 1 »
|