Annotation inheritance

JAX-RS annotations defined in a class or interface method are inherited by the corresponding subclass or implementation class method, provided that the method and its parameters do not define their own annotations. Let's familiarize ourselves with this with a simple example; the IEmployeeService interface defines REST API functions with the annotations required for EmployeeService to implement:

public interface IEmployeeService {

@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public Employee findEmployee(@PathParam("id") Short id);

@GET
@Path("{age}")
@Produces(MediaType.APPLICATION_JSON)
public List<Employee> findEmployeesByAge(@PathParam("age") Short age);
}

public class EmployeeService implements IEmployeeService{
public Employee findEmployee(Short id) {
//....
}

@Produces(MediaType.TEXT_XML)
public List<Employee> findEmployeesByAge(Short age) {
//....
}
}

The EmployeeService findEmployee method inherits the annotations from the IEmployeeService interface. Conversely, the findEmployeesByAge method does not inherit the annotations from the IEmployeeService interface, as it has overridden its own annotation.

Class or interface annotations inheritance are not supported; only annotations used on the method and method parameters can be inherited.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.143.5.201