The log is the same as when the destroy method is specified using the destroy-method attribute. The DisposableBeanAdapter will call the destroy() method, so it will not be depicted again.

Also, you probably also suspect that if ComplexBean makes use of the @PreDestroy annotation, the dirty work will be done by a bean post processor. Further below you can see the implementation, configuration, and log:

import javax.annotation.PreDestroy;
public class ComplexBean {    private SimpleBean simpleBean1;    private SimpleBean simpleBean2;
    public ComplexBean(SimpleBean simpleBean1) {        logger.info("Stage 1: Calling the constructor.");        this.simpleBean1 = simpleBean1;    }
    @Required    public void setSimpleBean2(SimpleBean simpleBean2) ...

Get Pivotal Certified Professional Spring Developer Exam: A Study Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.