public class BeanRegistrarRuntimeHints extends java.lang.Object implements RuntimeHintsRegistrar
Registers the registry a plugin declares its beans against.
A plugin declares them in a closure, and Groovy resolves every call in a closure where the call is written rather than when the closure is compiled. So each call on the registry is made reflectively, and an image keeps a method for that only when something has asked it to.
Nothing does: the registry belongs to Spring, an application never names it, and the closures that call it are registered as closures rather than for what they call. The image then refuses the first call and the context does not start, reporting a method of an interface that appears nowhere in the application -- a plugin declaring a bean with a specification, which most of them do.
The same is true of the registry the older bean DSL is handed: a plugin that still declares its beans that way asks whether one is already registered, and that call is made the same reflective way. It failed later than the others, once a datastore came to be configured.
The types are named here rather than scanned for, because they belong to Spring and are few.
| Type Params | Return Type | Name and description |
|---|---|---|
|
public void |
registerHints(RuntimeHints hints, java.lang.ClassLoader classLoader) |
| 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) |