步骤3 
继承spring的LocalSessionFactoryBean类,override其setDataSource方法,将dataSource的password取出,解密后再赋值。 
为什么要这么做呢,因为datasource是localsessionFactoryBean的一个属性,在注入dataSource时将其密码解密是比较恰当的。所以选择这个setDataSource方法进行override。假设我们使用的dbcp连接池 
代码如下:(类名是AhuaXuanLocalSessionFactoryBean)Java代码 
public void setDataSource(DataSource dataSource) {    
String password = (BasicDataSource)dataSource.getPassword();    
//通过cipher类进行解密    
String decryPassword = DESUtil.decrypt(password);    
dataSource.setPassword(decryPassword);    
        this.dataSource = dataSource;    
     }   public void setDataSource(DataSource dataSource) {
String password = (BasicDataSource)dataSource.getPassword();
//通过cipher类进行解密
String decryPassword = DESUtil.decrypt(password);
dataSource.setPassword(decryPassword);
  this.dataSource = dataSource;
 }
配置如下:Java代码 
<bean id="sessionFactory" class="org.springframework.orm.hibernate.AhuaXuanLocalSessionFactoryBean">    
                     <property name="dataSource">    
             <ref bean="dataSource"/>    
         </property>    
</bean>   <bean id="sessionFactory" class="org.springframework.orm.hibernate.AhuaXuanLocalSessionFactoryBean">
                    <property name="dataSource">
            <ref bean="dataSource"/>
        </property>
</bean>
之前robbin说的DataSourceFactoryBean那个类我在spring1.2.8中没有找到,但是我觉得改造LocalSessionFactoryBean也不错 这样就完成了一个我们的目标,以上代码是随便写的,没有经过测试,有兴趣的同学可以试一下补充:此方式我测试过,可行。