1

我在 bean xml 文件中有一个简单的 bean 标记,如下所示。这只是一个虚拟值

<bean id="myBeanId" class="myBeanClass">
    <property name="myProperty" value=${myPassword} />
</bean>

<bean id ="myOtherBeanId" class="myOtherBeanClass">
    <property name="myOtherProperty" ref="myBeanId">
</bean>

myPassword 是存储在单独的属性文件中的变量名称。现在,我不是从属性文件中存储 myPassword 的直接值,而是在属性文件中加密字符串,并且我想在 myPassword 属性上调用我的自定义编写的 Decrypt 方法。像这样的东西。

<bean id="myBeanId" class="myBeanClass">
    <property name="myProperty" value=com.xxx.Security.Decrypt(${myPassword}) />
</bean>

我怎样才能做到这一点?

4

2 回答 2

1

Use the MethodInvokingFactoryBean if you want to invoke another bean's method and use the returned object as a bean.

<bean id="securityBean" class="com.xxx.Security">
</bean>

<bean id="myBeanId" class="myBeanClass">
    <property name="myProperty">
        <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
           <property name="targetObject"><ref local="securityBean"/></property>
           <property name="targetMethod"><value>Decrypt</value></property>
           <property name="arguments">
               <list>
               <value>${myPassword}</value>
              </list>
            </property>
        </bean>
    </property>
</bean>
于 2013-09-11T10:27:31.597 回答
0

如何使用 with jaspyt,

属性文件入口密码=ENC(G6N718UuyPE5bHyWKyuLQSm02auQPUtm)

豆入口

<bean id="myBeanId" class="myBeanClass">
    <property name="myProperty" value=${password} />
</bean>

来源:http ://www.jasypt.org/spring31.html

于 2013-09-11T10:26:54.310 回答