区分单例还是多例对象
单例的几个状态
初始化方法和销毁方法
设置成我们定义的方法
测试
有创建和初始化。但是没有销毁,。对象一直没有销毁的方法
main方法是一切应用程序的入门。当main方法结束后。我们当前应用中线程占用的内存全部释放。这里当前也包含了我们的容器。
此时没来得及调用销毁方法就已经消失了。
只能手动关闭容器。
这里close方法报错了。
这是因为ClassPathXmlApplicationContext用的是ApplicationContext这个接口类型去接收的
多态的特点。如果你看成父类对象的时候,只能调用父类对象的方法,而子类的方法一个也调用不了。这里用自己去接收。ClassPathXmlApplicationContext
再次运行。
多例
改成多例的情况
容器销毁依然在这
没有看到容器关闭的信息。
可以在这里加个断点进行测试。用Debug的方式去运行。
断点,停住,点击下一步
到这了还没有创建
走到这里才被创建
如果改成单例
加断点,debug调试
只要解析完了配置文件。马上就创建和初始化
这时候也就解释了。spring可以感知到对象的作用范围。选择什么时候创建对象立即还是延迟。