Използвам библиотеката на Google Gson(gson) за четене/запис на json файлове и пролетен mvc 3 в моето уеб приложение.
И така, в контролера искам да създам единичен екземпляр на Gson с красив печат. В Java кодът ще бъде,
Gson gson = new GsonBuilder().setPrettyPrinting().create();
В Controller създадох запис с автоматично окабеляване, както е показано по-долу,
@Autowired
private Gson gson;
и конфигурацията на xml bean е както по-долу,
<bean id="gsonBuilder" class="com.google.gson.GsonBuilder">
<property name="prettyPrinting" value="true"/>
</bean>
<bean id="gson" factory-bean="gsonBuilder" factory-method="create"/>
Той хвърля следното изключение в регистрационните файлове на catalina,
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'prettyPrinting' of bean class [com.google.gson.GsonBuilder]: Bean property 'prettyPrinting' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1024)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:900)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358)
Знаех, че подписът на сетер на setPrettyPrinting() е различен от очаквания от пролетта, затова пролетта хвърля изключението.
public GsonBuilder setPrettyPrinting() {
prettyPrinting = true;
return this;
}
Но не мога да намеря начин да свържа зърната на шаблона за изграждане. Аз съм доста нов за пролетта. Може ли някой да ме уведоми дали е възможно да се реши този проблем в xml bean подход?