application.yml
должно выглядеть следующим образом
server:
port: 8090
servlet:
context-path: /service
ApiController.java
должно выглядеть следующим образом
public abstract class ApiController<Id extends Serializable, E> {
/**
* Collection for service classes.
*
* @see AbstractService
*/
private final AbstractService<Id, E> service;
@Autowired
private ApplicationContext appContext;
public ApiController(AbstractService<Id, E> service) {
this.service = service;
}
}
AbstractService.java
должно выглядеть следующим образом
public interface AbstractService<Id extends Serializable, E> {
/**
*
* @return
*/
public default Class<E> getEntityClass() {
return (Class<E>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[1];
}
ItemController.java
должно выглядеть следующим образом
@RestController
@RequestMapping(value = "/item")
public class ItemController extends ApiController<Integer, Item> {
private final ItemService itemService;
@Autowired
public ItemController(ItemService service) {
super(service);
this.service = service;
}
}
PropertyController.java
должно выглядеть следующим образом
@RestController
@RequestMapping(value = "/property")
public class PropertyController extends ApiController<Integer, Property> {
private final PropertyService propertyService;
@Autowired
public PropertyController(propertyService service) {
super(service);
this.service = service;
}
}
Это то, что вам нужно сделать, чтобы получить желаемые результаты.