未在原型范围bean上调用Predestroy

时间:2018-07-25 17:17:54

标签: spring spring-boot

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);
        ctx.getBean(PersonService.class);
        ((ConfigurableApplicationContext)ctx).close();
    }
}

@Component
@Scope("prototype")
public class PersonService {

    @PostConstruct
    public void start() {
        System.out.println("starting service");
    }

    @PreDestroy
    public void stop() {
        System.out.println("stopping service");
    }
}

当我运行上述代码时,我没有看到“停止服务”的记录。 但是,如果我在Person服务类上评论原型作用域,则可以在日志中看到“停止服务”。

如何使用原型范围bean调用@predestroy注释的方法。

0 个答案:

没有答案