@PreDestroy注解是Java EE标准中定义的注解之一,也被Spring框架支持。使用@PreDestroy注解可以标记一个方法,在Bean销毁之前自动执行该方法。通常在该方法中完成一些清理操作,例如释放资源、关闭连接等。
下面是@PreDestroy注解的一个示例:
@Service
public class MyService {
private Connection conn;
@PostConstruct
public void init() {
conn = getConnection();
}
public void execute() {
// 使用conn进行一些操作
}
@PreDestroy
public void cleanup() {
closeConnection(conn);
}
}
在上面的示例中,使用@Service注解声明了MyService类,并使用@PostConstruct注解标记了一个名为init()的方法。在该方法中,通过调用getConnection()方法来获取数据库连接,并将其赋值给conn属性。在execute()方法中,可以使用conn属性进行一些数据库操作。在@PreDestroy注解标记的cleanup()方法中,通过调用closeConnection()方法来关闭数据库连接。由于@PreDestroy注解的存在,Spring框架会在Bean销毁之前自动调用cleanup()方法,确保数据库连接得到正确地关闭。
需要注意的是,@PreDestroy注解的方法只会在Bean销毁前执行一次,即只有在Bean销毁时才会执行。如果想要在Bean初始化后执行一些操作,可以使用@PostConstruct注解。