San*_*iah 2 grails groovy spring
我在groovy中重载了一个构造函数.但它没有被召集.
现在我有:
默认构造函数:
UserServiceClient(){
String encoded = Base64.encodeBase64String((userName + ":" + password ).getBytes()).replaceAll("\n", "")
headerMap.put("Authorization","Basic " + encoded)
}
Run Code Online (Sandbox Code Playgroud)
重载的构造函数:
UserServiceClient(String baseURI,String userName ,String password) {
println"inside overloaded constructor"+baseURI
if(baseURI==null){
log.error("forms.ldap.baseUri parameter is null,Please configure same in respective property file ")
throw new NullPointerException()
}
if(userName==null)
{
log.error("forms.ldap.userName parameter is null,Please configure same in respective property file ")
throw new NullPointerException()
}
if(password==null)
{
log.error("forms.ldap.password parameter is null,Please configure same in respective property file ")
throw new NullPointerException()
}
String encoded = Base64.encodeBase64String((userName + ":" + password ).getBytes()).replaceAll("\n", "")
println"encoded values :"+encoded
headerMap.put("Authorization","Basic " + encoded)
setHeaderMap(headerMap)
}
Run Code Online (Sandbox Code Playgroud)
我们试图通过Spring Bean创建一个对象:
<bean id="userServiceClient" class="com.user.service.client.UserServiceClient">
<property name="baseURI" value= "${forms.ldap.baseUri}" />
<property name="userName" value="${forms.ldap.userName}" />
<property name="password" value="${forms.ldap.password}" />
</bean>
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
传递3个属性将使用默认构造函数创建对象,然后setBaseUri()对新对象的每个属性(即使用方法等)使用基于setter的注入.
尝试使用构造函数注入constructor-arg而不是property:
<bean id="userServiceClient" class="com.user.service.client.UserServiceClient">
<constructor-arg value="${forms.ldap.baseUri}" />
<constructor-arg value="${forms.ldap.userName}" />
<constructor-arg value="${forms.ldap.password}" />
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |