`

spring init

 
阅读更多

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种:

第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作

第二种是:通过 在xml中定义init-method 和  destory-method方法

第三种是: 通过bean实现InitializingBean和 DisposableBean接口

 

 

在xml中配置 init-method和 destory-method方法

只是定义spring 容器在初始化bean 和容器销毁之前的所做的操作

基于xml的配置只是一种方式:

 

直接上xml中配置文件:

 

[html] view plaincopy
 
  1. <bean id="personService" class="com.myapp.core.beanscope.PersonService" scope="singleton"  init-method="init"  destroy-method="cleanUp">  
  2.   
  3. </bean>  

 

 

定义PersonService类:

 

[java] view plaincopy
 
  1. package com.myapp.core.beanscope;  
  2.   
  3.   
  4. public class PersonService  {  
  5.    private String  message;  
  6.   
  7.     public String getMessage() {  
  8.         return message;  
  9.     }  
  10.       
  11.     public void setMessage(String message) {  
  12.         this.message = message;  
  13.     }  
  14.      
  15.   
  16.       
  17.     public void init(){  
  18.         System.out.println("init");  
  19.     }  
  20.     //  how  validate the  destory method is  a question  
  21.     public void  cleanUp(){  
  22.         System.out.println("cleanUp");  
  23.     }  
  24. }  


相应的测试类:

 

 

[java] view plaincopy
 
  1. package com.myapp.core.beanscope;  
  2.   
  3. import org.springframework.context.support.AbstractApplicationContext;  
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  5.   
  6. public class MainTest {  
  7.   public static void main(String[] args) {  
  8.         
  9.       AbstractApplicationContext  context =new  ClassPathXmlApplicationContext("SpringBeans.xml");  
  10.       
  11.     PersonService  person = (PersonService)context.getBean("personService");  
  12.       
  13.     person.setMessage("hello  spring");  
  14.       
  15.     PersonService  person_new = (PersonService)context.getBean("personService");  
  16.       
  17.     System.out.println(person.getMessage());  
  18.     System.out.println(person_new.getMessage());  
  19.     context.registerShutdownHook();  
  20.   
  21.       
  22. }  
  23. }   


测试结果:

 

init
hello  spring
hello  spring
cleanUp

可以看出 init 方法和 clean up方法都已经执行了。

 

context.registerShutdownHook(); 是一个钩子方法,当jvm关闭退出的时候会调用这个钩子方法,在设计模式之 模板模式中 通过在抽象类中定义这样的钩子方法由实现类进行实现,这里的实现类是AbstractApplicationContext,这是spring 容器优雅关闭的方法。

 

http://blog.csdn.net/topwqp/article/details/8681467

 

 

分享到:
评论

相关推荐

    spring-boot-cli下载

    1. 初始化项目:使用`spring init --dependencies=web`命令可以初始化一个新的Spring Boot项目,这里的`web`是指添加Web依赖。 2. 运行应用:在项目根目录下,使用`spring run application.java`命令可以运行Java源...

    spring-boot-cli-2.2.6.RELEASE-bin.zip

    1. **创建项目**:通过`spring init`命令,你可以快速创建一个新的Spring Boot项目结构,包含基本的Maven或Gradle构建文件、源代码目录结构等。 2. **运行脚本**:CLI支持直接运行Java源代码或Groovy脚本,这样可以...

    spring boot cli 1.5.10

    2. **初始化项目**:使用`spring init`命令可以生成一个新的Spring Boot项目结构,包括基本的Maven或Gradle配置。 3. **编写Groovy脚本**:在终端中,直接编写并运行Groovy代码,如`spring run app.groovy`,即可...

    spring-boot-cli-1.5.8

    此外,Spring Boot 1.5.8版本还支持通过`spring init`命令初始化一个新的Spring Boot项目。通过提供一些基本信息,如项目名称、依赖等,CLI会自动生成一个标准的Maven或Gradle项目结构,包含必要的配置文件和基础类...

    ssi框架中需要的spring包

    压缩包中的"新建文件夹"可能包含了Spring框架的相关库文件,例如`spring-core.jar`(核心模块)、`spring-context.jar`(上下文模块)、`spring-beans.jar`(Bean模块)、`spring-aop.jar`(AOP模块)以及`spring-...

    spring-boot-cli-2.0.3.RELEASE-bin.zip

    1. 使用`spring init --dependencies`命令初始化一个新的Spring Boot项目,你可以指定需要的依赖,如Web、Data JPA等。 2. 初始化完成后,会生成一个`build.gradle`文件,这是Gradle构建工具的配置文件,你可以使用`...

    spring-boot-cli-2.0.0.M5-bin.zip

    - 使用`spring init --dependencies`命令初始化一个新的Spring Boot项目,你可以指定所需的依赖,例如Web、Data JPA等。 - 初始化后,会生成一个`pom.xml`或`build.gradle`文件,这是你的项目构建文件,包含了...

    spring-boot-cli-1.4.3.RELEASE-bin.zip

    2. **创建项目**:使用`spring init`命令可以快速生成一个新的Spring Boot项目结构,只需提供如groupId、artifactId、dependencies等基本信息。 3. **运行应用**:编写完`src/main/groovy`目录下的Groovy脚本后,...

    spring-boot-cli-1.0.0.RELEASE-bin.zip

    - **创建`: 使用`spring init`命令创建一个新的Spring Boot项目。例如: ``` spring init --groupId=com.example --artifactId=my-app ``` - **构建`: 进入项目目录,使用`spring build`命令构建JAR或WAR文件。...

    spring-init-gradle

    《Spring Init Gradle:构建Java应用的高效工具》 在Java开发领域,Spring框架一直以其强大的功能和灵活性受到广大开发者们的喜爱。而Spring Init Gradle是Spring Boot项目初始化的一个利器,它结合了Gradle的强大...

    spring boot中文文档

    接着,会引导读者创建第一个Spring Boot应用,通过`spring init`命令或使用Spring Initializr网站生成初始项目结构。书里会涵盖Spring Boot的特性,如自动配置、起步依赖、健康检查、外部化配置等。 自动配置是...

    spring-boot-cli-1.5.18.RELEASE-bin.zip

    2. **创建应用**:使用`spring init`命令初始化一个Spring Boot项目,可以指定项目类型、依赖等信息。 3. **运行应用**:在Groovy脚本中编写Spring Boot应用代码,然后通过`spring run`命令运行。 例如,创建一个...

    spring-boot-cli-1.5.9.RELEASE-bin.zip

    - 使用`spring init`命令可以快速初始化一个新的Spring Boot项目,通过指定依赖、groupId、artifactId等参数。 - 例如:`spring init --dependencies=web my-app`将创建一个包含Web依赖的新项目,名为my-app。 3....

    spring-boot-cli-1.1.1.RELEASE-bin.zip

    使用Spring Boot CLI,开发者可以轻松地创建一个新项目,只需一行命令`spring init --build=maven --groupId=com.example --artifactId=myapp`,就能生成一个基础的Maven项目结构。此外,CLI还支持直接运行Groovy...

    spring-boot-cli-1.2.1.RELEASE-bin.zip

    1. **初始化项目**: 使用`spring init`命令可以初始化一个新的Spring Boot项目。例如,`spring init --dependencies web,data-jpa my-app`将创建一个包含Web和数据JPA依赖的项目。 2. **编写Groovy脚本**: 在创建的...

    spring在@Bean注解中initMethod调用方法异步

    总的来说,这个压缩包中的代码片段展示了如何在Spring中利用`@Bean`注解和`initMethod`属性实现异步bean初始化,结合Sofaboot框架,提升应用程序的启动效率和并发性能。通过这些类的设计和交互,我们可以看到Spring...

    spring-boot-cli-2.2.0.RELEASE-bin.zip

    1. 创建新项目:使用`spring init`命令,你可以快速初始化一个新的Spring Boot项目,指定依赖、groupId、artifactId等参数。 2. 运行Spring应用程序:通过`spring run`命令,你可以直接运行一个Groovy脚本,这个...

    spring-boot-cli-1.1.6.RELEASE-bin.zip

    - `spring init`命令:初始化一个新的Spring Boot项目,可以指定项目名称、父POM、依赖等参数,生成一个基础的项目结构。 - `spring version`命令:查看Spring Boot CLI的版本信息。 - `spring help`命令:显示...

    Spring Boot 实战教程,由浅入深详细介绍springboot的使用

    此外,Spring Initializr 还支持通过命令行工具 `spring init` 来创建项目。 **4.2 Spring Boot 代码** **4.2.1 POM 文件** POM (Project Object Model) 文件是 Maven 项目的核心配置文件,它包含了项目构建的...

    spring-boot-cli-1.1.8.RELEASE-bin.zip

    - `spring init`命令可以初始化一个新的Spring Boot项目,通过提供一系列参数,如groupId、artifactId、dependencies等,生成项目的基本结构。 - 初始化的项目通常包含`build.gradle`或`pom.xml`,可以用Gradle或...

Global site tag (gtag.js) - Google Analytics