Grails autowire内置弹簧转换器
我有这样的东西Grails autowire内置弹簧转换器,grails,Grails,我有这样的东西 class DomainConverter implements GenericConverter { private Class<Domain> classOfDomain; private Class<DomainCommand> classOfDomainCommand; public Set<GenericConverter.ConvertiblePair> getConvertibleTypes() {
class DomainConverter implements GenericConverter {
private Class<Domain> classOfDomain;
private Class<DomainCommand> classOfDomainCommand;
public Set<GenericConverter.ConvertiblePair> getConvertibleTypes() {
Set<GenericConverter.ConvertiblePair> convertiblePairs = new HashSet<GenericConverter.ConvertiblePair>();
convertiblePairs.add(new GenericConverter.ConvertiblePair(classOfDomain, classOfDomainCommand));
convertiblePairs.add(new GenericConverter.ConvertiblePair(classOfDomainCommand, classOfDomain));
return convertiblePairs;
}
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
if (classOfDomain.equals(sourceType.getType())) {
return this.convert((Domain) source);
} else {
return this.convertBack((DomainCommand) source);
}
}
protected DomainCommand convert(Domain definition){
...
}
protected Domain convertBack(DomainCommand command){
...
}
}
类DomainConverter实现GenericConverter{
私有类领域;
私有类域命令类;
公共集getConvertibleTypes(){
Set convertiblePairs=new HashSet();
添加(新的GenericConverter.ConvertiblePair(classOfDomain,classOfDomainCommand));
添加(新的GenericConverter.ConvertiblePair(classOfDomainCommand,classOfDomain));
返回可转换票据;
}
公共对象转换(对象源、类型描述符源类型、类型描述符目标类型){
if(classOfDomain.equals(sourceType.getType())){
返回此.convert((域)源);
}否则{
返回此.convertBack((DomainCommand)源代码);
}
}
受保护的域命令转换(域定义){
...
}
受保护域convertBack(DomainCommand命令){
...
}
}
我必须在类中连接它还是将它添加到resources.groovy中
如何创建DomainCommand,以便我仍然可以进行自动连接查看您可以看到bean声明的示例:
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean"/>
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="example.MyCustomConverter"/>
</list>
</property>
</bean>
因此,您需要在
resources.groovy
文件中声明转换器和转换服务。非常正确,但我建议您在groovy文件中这样做,就像您提示的那样。相反(我就是这样做的)。XML文件有点过时:-)是的,我刚刚粘贴了Spring版本,以便您可以将其转换为Groovy DSL版本。