package io.ebean.event; import io.ebean.EbeanServer; /** * Fired after a bean is constructed, but not yet loaded from database. * <p> * Note: You MUST NOT set any default values, as in a following step, * properties will get unload. Use {@link BeanPostLoad} instead. * <p> * it's intended to do some dependency-injection here. * If you plan to use this feature you should use {@link EbeanServer#createEntityBean(Class)} * to create new beans. * </p> */ public interface BeanPostConstructListener { /** * Return true if this BeanPostConstructListener instance should be registered * for post construct on this entity type. */ boolean isRegisterFor(Class<?> cls); /** * Called immediately after construction. Perform DI here. */ void autowire(Object bean); /** * Called after every @PostConstruct annotated method of the bean is executed */ void postConstruct(Object bean); /** * Called after {@link EbeanServer#createEntityBean(Class)}. Only for new beans. * intended to set default values here. */ void postCreate(Object bean); }