注解:PostConstruct
/**
* The PostConstruct annotation is used on a method that needs to be executed
* after dependency injection is done to perform any initialization. This
* method MUST be invoked before the class is put into service. This
* annotation MUST be supported on all classes that support dependency
* injection. The method annotated with PostConstruct MUST be invoked even
* if the class does not request any resources to be injected. Only one
* method can be annotated with this annotation. The method on which the
* PostConstruct annotation is applied MUST fulfill all of the following
* criteria -
- The method MUST NOT have any parameters except in the case of EJB
* interceptors in which case it takes an InvocationC ontext object as
* defined by the EJB specification.
* - The return type of the method MUST be void.
* - The method MUST NOT throw a checked exception.
* - The method on which PostConstruct is applied MAY be public, protected,
* package private or private.
* - The method MUST NOT be static except for the application client.
* - The method MAY be final.
* - If the method throws an unchecked exception the class MUST NOT be put into
* service except in the case of EJBs where the EJB can handle exceptions and
* even recover from them.
* @since Common Annotations 1.0
* @see javax.annotation.PreDestroy
* @see javax.annotation.Resource
*/
@Documented
@Retention (RUNTIME)
@Target(METHOD)
public @interface PostConstruct {
}
在对象注册之后马上执行。
有几个注意点:
- 一个类中只有一个函数可以被@PostConstruct修饰。以为当修饰多个时,无法判断先执行哪个。
- 修饰的函数的返回类型必须为void。是因为后续没有操作?
使用的场景:
不需要调用具体的Bean对象中的方法,即在对象注入的时候就会调用方法。程序启动后,不需要写调用代码,就会执行一些操作。
比如,在一个main函数中,通过一些方法使对象注入,不用其他操作会执行在@PostConstruct修饰的方法中的动作。
本文详细解析了@PostConstruct注解的使用方法及其应用场景。该注解用于标记那些依赖注入完成后需要执行初始化操作的方法,并强调了其使用限制,如方法必须为空返回类型且不抛出已检查异常等。
12万+

被折叠的 条评论
为什么被折叠?



