我正在学习Spring框架,现在我正在学习init和callbacl方法。
我将遵循以下教程:http://www.tutorialspoint.com/spring/spring_bean_life_cycle.htm
我对本教程有一些疑问:
1) 为什么在MainApp类中,他将上下文声明为AbstractApplicationContext,但使用实现类PathXmlApplicationContext创建它?是因为我可以重写init()和destroy()方法吗?还是为了别的?
2) 语境究竟是什么。registerShutdownHook();方法
>
AbstractApplication ationContext
是声明寄存器Shutdown Hook()
的地方。因此,您需要在变量声明中使用这个类(或它的任何子类),以便在应用程序上下文中调用recsterShutdown Hook()
。
注册一个JVM关机钩子,该钩子将在JVM关机时关闭应用程序上下文(销毁所有bean)
在实际应用中,destroy方法的可能示例是什么?为什么一个正在运行的应用程序想要销毁它的bean?如果bean是由spring容器(比如ContextLoaderListener)为web应用程序创建的,那么如何重新创建这些bean,因为容器已经启动了。有没有办法在不重启应用服务器的情况下重启spring IoC容器?
想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 什么是bean生命周期?为什么控制反转不会自动调用销毁()方法,为什么我们会显式调用?
我知道这个问题听起来很幼稚,但我对web应用程序中bean的范围感到困惑。我知道,对于每个请求,容器都会生成一个新线程,类似地,对于spring web应用程序,每个请求都会生成一个新线程,那么为什么建议将我的控制器、服务定义为singleton,这些bean的范围不应该是prototype吗,因为每个请求(即线程)都有其自己的控制器实例和要使用的服务。 请开导我。
这段时间我在学习Spring框架。 现在我正在研究春豆的生命周期,尤其是关于豆子的日化和破坏,阅读本教程: http://www.tutorialspoint.com/spring/spring_bean_life_cycle.htm 我已经实现了前一篇文章中提出的示例,但我对这个论点有疑问。 在这个例子中,我只有两个类:HelloWorld。java和MainApp。JAVA 在地狱世界。jav
方法的标注和函数类似: struct Owner(i32); impl Owner { // 标注生命周期,就像独立的函数一样。 fn add_one<'a>(&'a mut self) { self.0 += 1; } fn print<'a>(&'a self) { println!("`print`: {}", self.0); } } fn
用法 组件和虚拟 DOM 节点都有生命周期方法,也叫钩子,它们会在 DOM 元素的生命周期的对应时期被调用。 // 组件中的钩子 var ComponentWithHook = { oninit: function(vnode) { console.log("initialize component") }, view: function() { return "hello