2015-09-10 3 views
2

У меня есть struts2-json-plugin lib в моем проекте, и я хочу использовать JSONWriter, чтобы получить строку JSON и поместить ее в JavaScript только для одного параметра (не результат JSON для всего Action) только один добытчик:struts2-json-plugin JSONWriter Injection in Action

public String getCarTypesJson() throws JSONException { 
     JSONWriter writer = new JSONWriter(); 
     return writer.write(carTypes); 
} 

Его работа, но я могу пропустить создание new JSONWriter() и впрыснуть JSONWriter объект в моем действии с Struts2?

ответ

3

Struts2 json plugin не объявляет JSONWriter в качестве инъецируемого компонента. И внутри плагина JSONWriter используется точно так же, как вы делаете это прямо сейчас, by creating an instance из этого каждый раз, когда есть необходимость сериализовать что-то.

Конечно, вы можете создать bean-компонент самостоятельно в некотором контейнере DI и ввести его в действие. Если вы решите сделать это, убедитесь, что вы объявляете bean JSONWriter как prototype.

+1

Да, вы правы. Возможно, объект JSONWriter не так тяжел, если метод serialize в plugin lib каждый раз создает новый экземпляр. У меня есть использование в другом проекте json-simple lib, а JSONObject был добавлен весенний боб (с одиночной областью по умолчанию). – sytolk