@PreDestroy注解的作用和示例

@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注解。