@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) @java.lang.annotation.Target(ElementType.TYPE) public @interface Scaffold
Scaffolding annotation for Controllers and Services.
At compile-time, this annotation:
// Simple: domain class only (uses default GormService) @Scaffold(Car.class) class CarService {// → extends GormService// Explicit: specify both class to extend and domain @Scaffold(value = GormService.class, domain = Car.class) class CarService {} // → extends GormService // Alternative: domain parameter @Scaffold(domain = Car.class) class CarService {} // → extends GormService }
// Simple: domain class only (uses default RestfulController) @Scaffold(Car.class) class CarController {// → extends RestfulController// Explicit: specify both class to extend and domain @Scaffold(value = RestfulController.class, domain = Car.class) class CarController {} // → extends RestfulController }
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#equals(java.lang.Object), java.lang.Object#getClass(), java.lang.Object#hashCode(), java.lang.Object#notify(), java.lang.Object#notifyAll(), java.lang.Object#toString(), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int) |
Domain/entity class (alternative to value). More explicit when also specifying the class to extend.
Examples:
@Scaffold(domain = Car.class) // Uses default
@Scaffold(value = JpaScaffoldService.class, domain = Car.class)
Whether this service/controller is read-only. Passed to constructor of the extended class.
For services: mutations throw ReadOnlyServiceException
For controllers: mutation endpoints may return 405 Method Not Allowed
Class to extend OR domain class (context-dependent).
Interpretation:
GormService<Car>):
GormServiceCar (extracted from generic)GormService):
Car):