I deserialize a json and want then to call postProcess method by annotation or another way after constractor?
json file:
{
"type": "storeType",
"name": "store-name",
"list": [
{
"type": "itemType",
"name": "item1-name",
},
{
"type": "itemType",
"name": "item2-name",
}
]
}
Store.class:
Store extends AbstractClass{
@Value("${store.size:100000}")
private Integer size;
@Autowired
private StorePersistency persistency;
private String name;
private List<abstractClass> list;
public Store(@JsonProperty("name") String name, @JsonProperty("list") list) {
this.name=name;
this.list=list;
}
@Override
public postProcess(){
...
}
}
Item.class:
Item extends AbstractClass{
private String name;
public Store(@JsonProperty("name") String name) {
this.name=name;
}
@Override
public postProcess(){
...
}
}
deserializerService:
AbstractClass clzz = objectMapper.readValue(jsonFile, AbstractClass.class)
The purpose is to @authowire and @value other class fields (StorePersistency and size) by calling a authowireService in postProcess method.
AuthowireService:
public void authowireBean(Class clzz){
applicationContext.getAutowireCapableBeanFactory().autowireBeanProperties(clzz, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true);
}