精华内容
下载资源
问答
  • 什么可能是在现实世界的应用程序中使用destroy方法的示例?为什么正在运行的应用程序想要销毁它的bean?如果bean是由用于Web应用程序的spring容器创建的,例如ContextLoaderListener,那么如何重新创建这些bean,因为...

    什么可能是在现实世界的应用程序中使用destroy方法的示例?为什么正在运行的应用程序想要销毁它的bean?如果bean是由用于Web应用程序的spring容器创建的,例如ContextLoaderListener,那么如何重新创建这些bean,因为容器已经启动.有没有办法重新启动弹簧IoC容器而无需重新启动应用程序服务器?

    解决方法:

    一个例子是DataSource或需要清理的任何资源.你可能会有这样的事情:

    @Bean(destroyMethod = "close")

    DataSource dataSource() {

    ....

    }

    这在具有多个类加载器的环境中尤其重要,例如应用程序服务器以防止内存泄漏.

    有时候这样做是多余的,因为底层资源可以自己进行清理(比如作为servlet生命周期中contextDestroyed事件的一部分),但是你应该总是验证这一点.

    这些弹簧docs也是一个有用的参考.引用的例子类似:

    那么bean类:

    public class ExampleBean {

    public void cleanup() {

    // do some destruction work (like releasing pooled connections)

    }

    }

    可以刷新上下文.这个answer提供了一个很好的解释,当你可能想要这样做.

    标签:java,spring,servlets

    来源: https://codeday.me/bug/20190829/1758756.html

    展开全文
  • Spring可以通过配置init-method和destroy-method属性来在容器生成和销毁时分别执行一段代码,但在我的demo中,作为init方法的start方法执行了,而作为destroy方法的shutdown方法一直没有执行,代码如下: ...
  • destroy 方法 @DrDeprecator (Stuart Marks)在core-libs-dev OpenJDK邮件列表上的消息“ RFR(s):8204243:remove Thread.destroy()和Thread.stop(Throwable) ”是对以下内容的审阅请求(RFR):与JDK-...

    destroy 方法

    @DrDeprecator (Stuart Marks)在core-libs-dev OpenJDK邮件列表上的消息“ RFR(s):8204243:remove Thread.destroy()和Thread.stop(Throwable) ”是对以下内容的审阅请求(RFR):与JDK-8204243关联的更改集[“删除Thread.destroy()和Thread.stop(Throwable)”)。 错误报告邮件列表消息都描述了这两个引用的Thread方法的历史,并解释说这两种方法都没有真正有用的作用。

    用于java.lang.ThreadJDK 10 Javadoc API文档显示了Thread类上已弃用的六个方法,其中三个已显式标记为要删除。 下表总结了这些不建议使用的Thread方法。

    JDK 10开始java.lang.Thread中弃用的方法
    方法 不推荐使用
    以来
    对于
    搬走
    JDK 10
    状态
    countStackFrames() 1.2 取决于不推荐使用的suspend()
    破坏() 1.5 自启动以来引发NoSuchMethodError
    从未实施
    恢复() 1.2 没有 仅存在于与suspend()
    停() 1.2 没有 这种方法本质上是不安全的。
    停止(可抛出) 1.2 JDK 8引发 UnsupportedOperationException
    暂停() 1.2 没有 这种方法...本质上是容易死锁的。

    现在看来,两三个Thread被弃用标记为删除方法将JDK 11这两种方法去除Thread.destroy()使用Thread.stop(Throwable的)应JDK 11的完全去除destroy()方法除了抛出NoSuchMethodError外没有做任何事情,而stop(Throwable)方法除了自JDK 8起抛出UnsupportedOperationException之外什么都没做。

    其他参考

    翻译自: https://www.javacodegeeks.com/2018/06/thread-methods-destroy-stop-removed.html

    destroy 方法

    展开全文
  • System.out.println("destroy方法"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("service方法的具体...

    Demo_01.java

    package study;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Demo_01 extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	public void init() throws ServletException {
    		System.out.println("init方法");
    	}
    
    	public void destroy() {
    		System.out.println("destroy方法");
    	}
    	
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("service方法的具体实现doget");
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("service方法的具体实现dopost");
    	}
    
    }
    
    

    index.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<a href="Demo_01">doGet</a><!-- 超链接都是get方式 -->
    	<form action="Demo_01" method="post">
    		<input type="submit" value="dopost">
    	</form>
    </body>
    </html>
    

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>4_servlet生命周期中的init和destroy方法</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
        <description></description>
        <display-name>Demo_01</display-name>
        <servlet-name>Demo_01</servlet-name>
        <servlet-class>study.Demo_01</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>Demo_01</servlet-name>
        <url-pattern>/Demo_01</url-pattern>
      </servlet-mapping>
    </web-app>
    
    展开全文
  • destroy方法与钩子函数

    千次阅读 2018-11-29 23:38:47
      JVM关闭时,会触发钩子函数,Spring会在注册的钩子函数中回调bean的destroy方法销毁bean; 注册过程  注册时机:Spring容器启动时,run() --&gt; refreshContext(),如下图所示 注册逻辑如下,...

    结论

      JVM关闭时,会触发钩子函数,Spring会在注册的钩子函数中回调bean的destroy方法销毁bean;

    注册过程

     注册时机:Spring容器启动时,run() --> refreshContext(),如下图所示
    在这里插入图片描述

    注册逻辑如下,AbstractApplicationContext.registerShutdownHook()

    public void registerShutdownHook() {
    		if (this.shutdownHook == null) {
    			// No shutdown hook registered yet.
    			this.shutdownHook = new Thread() {
    				@Override
    				public void run() {
    					synchronized (startupShutdownMonitor) {
    						doClose();
    					}
    				}
    			};
    			Runtime.getRuntime().addShutdownHook(this.shutdownHook);
    		}
    	}
    

    Spring关闭过程

    1. 发布ContextClosedEvent事件;
    2. 销毁容器中所有的bean;
    3. 关闭容器本身;

    bean的销毁过程

    1. 首先,从disposableBeans获取所有待销毁的bean,然后倒序依次销毁(与创建顺序相反);
      在这里插入图片描述
    2. 先销毁依赖当前bean的其它bean,再销毁当前bean;
      在这里插入图片描述

    注册到disposableBeans的几种情况

    1. 实现了DisposableBean接口;
    2. 在xml配置文件中自定义了destroy方法;
    3. 实现了AutoCloseable接口;

    参考:

    1. https://my.oschina.net/evermaze/blog/1594330;
    展开全文
  • servlet int、destroy方法执行

    千次阅读 2018-05-25 16:44:58
    今天稍微温习了一下 Servlet,Servlet 主要有以下几个方法: 1) destroy() 2) getServletConfig() 3) getServletInfo() 4) init(ServletConfig arg0) 5) service(ServletRequest arg0, ServletResponse arg1)...
  • thinkphp5.1实例化模型操作delete 和destroy 方法 经过查看手册 终于找到了这个bug 原来手册里面已经说明了...多种where条件组合的话,需要使用destroy 方法,或者查出来主键,直接给到destroy方法里删除 RemindRecord
  • Spring的三种回调init和destroy方法的方式1.实现InitializingBean和DisposableBean 接口2.生命SpringBean时指定initmthod 和 destroymethodA.如果使用xml配置文件方式B.如果使用java注解方式配置3.使用JSR250提供的@...
  • 实现类不是抽象类,为什么可以不用实现接口的所有方法呢? ![图片说明](https://img-ask.csdn.net/upload/201812/16/1544964774_300026.png) 还有,这个绿圈上面的D是代表什么?
  • Servlet的生命周期是交给Servers的,init()相当于人刚出生的时候,一切都是最初的。...最后destroy()方法,就相当于人的死亡,它会结束掉Servlet的生命,是在服务器停止是调用的,即服务器停止执行destroy()方法,ser
  • 概述 在Spring中,向容器中注入一个Bean的时候可能期望在Bean的创建或者Bean的销毁的...实现方法 准备 HelloPrinter类: public class HelloPrinter { public void print() { System.out.println("hello"); }
  • 1. 一个gameObject被destroy,如何判断操作已经完成? 我试过gameObject == null ... 都不行是我的方法错了吗。 2. destroy删除后的游戏对象的内存是否被完全释放了,如果没有,我们如何进行清理工作?
  • 当上下文定义中的许多bean具有相同的初始化和销毁方法名称时,可以在元素的属性中定义default-init-method和。...当豆不提供匹配的定义的名称,该方法default-init-method还是default-destroy-method什么都不会...
  • 2.使用软删除的方法去删除数据记录 首先引用软删除(模型里面可以引用) use SoftDeletes; protected $dates = ['字段名']; 调用软删除, 先查找student::find(5); 使用删除 student::destroy(5); .
  • 为什么servlet没有调用destroy方法

    千次阅读 2013-10-20 17:54:52
    我的serlet在服务器启动的时候可以启动init()和service(),可是关闭tomcat的时候却没有调用destroy()...我有重写这个方法并且打印,可是没有东西出来这是为什么? 首先:你关闭的是consol控制台的按钮 还是...
  • spring init-method和destroy方法的使用

    千次阅读 2018-11-21 08:47:19
    在项目中曾多次看到init-method和destroy方法的相关配置,今天特地具体的了解了一下,简单说说几种使用方法。 1、java形式的配置方式: package com.fyf.service; public class BeanCreateService { public ...
  • cocos creator destroy方法

    2018-08-01 18:20:00
    node.destroy(),Node.destroyAllChildren并不会立即销毁,实际销毁操作会延迟到当前帧渲染前执行。 这段话可能不明白,但是在Node.destroyAllChildren()后,如果认为该节点的子节点都销毁了,直接跟之后的代码,那...
  • irb(main):061:0> subject_to_destory.destroy [1m[36m (0.0ms)[0m [1mBEGIN[0m [1m[35mSQL (1.0ms)[0m DELETE FROM `subjects` WHERE `subjects`.`id` = 1 [1m[36m (26.0ms)[0m [1mCOMMIT[0m => #, created_at: ...
  • 关于在DESTROY方法中执行命令的问题

    千次阅读 2011-04-12 09:49:00
    #!/usr/bin/perl package test; sub new() { my $ref = shift; my $class = ref($ref) || $ref; my $self = {}; bless($self, $class);...sub DESTROY() ... print "this is destroy/n";
  • java destroy 流程类destroy()方法 (Process Class destroy() method) destroy() method is available in java.lang package. destroy()方法在java.lang包中可用。 destroy() method is used to terminate the ...
  • destroy方法在容器移除servlet 时执行,同样只执行一次。这个方法会在所有的线程的service()方法执行完成或者超时后执行,调用这个方法后,容器不会再调用这个servlet的方法,也就是说容器不再把请求发送给这个...
  • U3d Destroy方法

    2018-08-15 09:41:21
    Destroy(gameObject,10); print("a"); 第二句并不是在gameObject摧毁了之后才执行。...Destroy方法就像一个定时炸弹。系统只需要按下爆炸倒计时的按钮即可离开,而不是要等到炸弹爆炸了才离开。...
  • destroy()方法可以直接调用,通过索引删除记录。 举个例子: /delete()方法删除/ //先查找记录 blog=Blog::find(1);if(blog = Blog::find(1); if(blog=Blog::find(1);if(blog){ //再删除记录 if($blog->delete())...
  • rails中active_record的delete和destroy方法

    千次阅读 2017-11-28 10:56:51
    rails对删除一个active_record对象有两个方法: obj.delete和obj.destroy方法,但是两种方法是有差别的。 delete方法不是在事务里进行删除,也不会触发active_record的回调。而destroy是在事务里处理,并且会触发...
  • destroy方法在容器移除servlet 时执行,同样只执行一次。这个方法会在所有的线程的service()方法执行完成或者超时后执行,调用这个方法后,容器不会再调用这个servlet的方法,也就是说容器不再把请求发送给这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 238,056
精华内容 95,222
关键字:

destroy方法