关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种:
第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
第二种是:通过 在xml中定义init-method 和 destory-method方法
第三种是: 通过bean实现InitializingBean和 DisposableBean接口
在xml中配置 init-method和 destory-method方法
只是定义spring 容器在初始化bean 和容器销毁之前的所做的操作
基于xml的配置只是一种方式:
直接上xml中配置文件:
- <bean id="personService" class="com.myapp.core.beanscope.PersonService" scope="singleton" init-method="init" destroy-method="cleanUp">
- </bean>
定义PersonService类:
- package com.myapp.core.beanscope;
- public class PersonService {
- private String message;
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public void init(){
- System.out.println("init");
- }
- // how validate the destory method is a question
- public void cleanUp(){
- System.out.println("cleanUp");
- }
- }
相应的测试类:
- package com.myapp.core.beanscope;
- import org.springframework.context.support.AbstractApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class MainTest {
- public static void main(String[] args) {
- AbstractApplicationContext context =new ClassPathXmlApplicationContext("SpringBeans.xml");
- PersonService person = (PersonService)context.getBean("personService");
- person.setMessage("hello spring");
- PersonService person_new = (PersonService)context.getBean("personService");
- System.out.println(person.getMessage());
- System.out.println(person_new.getMessage());
- context.registerShutdownHook();
- }
- }
测试结果:
init
hello spring
hello spring
cleanUp
可以看出 init 方法和 clean up方法都已经执行了。
context.registerShutdownHook(); 是一个钩子方法,当jvm关闭退出的时候会调用这个钩子方法,在设计模式之 模板模式中 通过在抽象类中定义这样的钩子方法由实现类进行实现,这里的实现类是AbstractApplicationContext,这是spring 容器优雅关闭的方法。
http://blog.csdn.net/topwqp/article/details/8681467
相关推荐
1. 初始化项目:使用`spring init --dependencies=web`命令可以初始化一个新的Spring Boot项目,这里的`web`是指添加Web依赖。 2. 运行应用:在项目根目录下,使用`spring run application.java`命令可以运行Java源...
1. **创建项目**:通过`spring init`命令,你可以快速创建一个新的Spring Boot项目结构,包含基本的Maven或Gradle构建文件、源代码目录结构等。 2. **运行脚本**:CLI支持直接运行Java源代码或Groovy脚本,这样可以...
2. **初始化项目**:使用`spring init`命令可以生成一个新的Spring Boot项目结构,包括基本的Maven或Gradle配置。 3. **编写Groovy脚本**:在终端中,直接编写并运行Groovy代码,如`spring run app.groovy`,即可...
此外,Spring Boot 1.5.8版本还支持通过`spring init`命令初始化一个新的Spring Boot项目。通过提供一些基本信息,如项目名称、依赖等,CLI会自动生成一个标准的Maven或Gradle项目结构,包含必要的配置文件和基础类...
压缩包中的"新建文件夹"可能包含了Spring框架的相关库文件,例如`spring-core.jar`(核心模块)、`spring-context.jar`(上下文模块)、`spring-beans.jar`(Bean模块)、`spring-aop.jar`(AOP模块)以及`spring-...
1. 使用`spring init --dependencies`命令初始化一个新的Spring Boot项目,你可以指定需要的依赖,如Web、Data JPA等。 2. 初始化完成后,会生成一个`build.gradle`文件,这是Gradle构建工具的配置文件,你可以使用`...
- 使用`spring init --dependencies`命令初始化一个新的Spring Boot项目,你可以指定所需的依赖,例如Web、Data JPA等。 - 初始化后,会生成一个`pom.xml`或`build.gradle`文件,这是你的项目构建文件,包含了...
2. **创建项目**:使用`spring init`命令可以快速生成一个新的Spring Boot项目结构,只需提供如groupId、artifactId、dependencies等基本信息。 3. **运行应用**:编写完`src/main/groovy`目录下的Groovy脚本后,...
- **创建`: 使用`spring init`命令创建一个新的Spring Boot项目。例如: ``` spring init --groupId=com.example --artifactId=my-app ``` - **构建`: 进入项目目录,使用`spring build`命令构建JAR或WAR文件。...
《Spring Init Gradle:构建Java应用的高效工具》 在Java开发领域,Spring框架一直以其强大的功能和灵活性受到广大开发者们的喜爱。而Spring Init Gradle是Spring Boot项目初始化的一个利器,它结合了Gradle的强大...
接着,会引导读者创建第一个Spring Boot应用,通过`spring init`命令或使用Spring Initializr网站生成初始项目结构。书里会涵盖Spring Boot的特性,如自动配置、起步依赖、健康检查、外部化配置等。 自动配置是...
2. **创建应用**:使用`spring init`命令初始化一个Spring Boot项目,可以指定项目类型、依赖等信息。 3. **运行应用**:在Groovy脚本中编写Spring Boot应用代码,然后通过`spring run`命令运行。 例如,创建一个...
- 使用`spring init`命令可以快速初始化一个新的Spring Boot项目,通过指定依赖、groupId、artifactId等参数。 - 例如:`spring init --dependencies=web my-app`将创建一个包含Web依赖的新项目,名为my-app。 3....
使用Spring Boot CLI,开发者可以轻松地创建一个新项目,只需一行命令`spring init --build=maven --groupId=com.example --artifactId=myapp`,就能生成一个基础的Maven项目结构。此外,CLI还支持直接运行Groovy...
1. **初始化项目**: 使用`spring init`命令可以初始化一个新的Spring Boot项目。例如,`spring init --dependencies web,data-jpa my-app`将创建一个包含Web和数据JPA依赖的项目。 2. **编写Groovy脚本**: 在创建的...
总的来说,这个压缩包中的代码片段展示了如何在Spring中利用`@Bean`注解和`initMethod`属性实现异步bean初始化,结合Sofaboot框架,提升应用程序的启动效率和并发性能。通过这些类的设计和交互,我们可以看到Spring...
1. 创建新项目:使用`spring init`命令,你可以快速初始化一个新的Spring Boot项目,指定依赖、groupId、artifactId等参数。 2. 运行Spring应用程序:通过`spring run`命令,你可以直接运行一个Groovy脚本,这个...
- `spring init`命令:初始化一个新的Spring Boot项目,可以指定项目名称、父POM、依赖等参数,生成一个基础的项目结构。 - `spring version`命令:查看Spring Boot CLI的版本信息。 - `spring help`命令:显示...
此外,Spring Initializr 还支持通过命令行工具 `spring init` 来创建项目。 **4.2 Spring Boot 代码** **4.2.1 POM 文件** POM (Project Object Model) 文件是 Maven 项目的核心配置文件,它包含了项目构建的...
- `spring init`命令可以初始化一个新的Spring Boot项目,通过提供一系列参数,如groupId、artifactId、dependencies等,生成项目的基本结构。 - 初始化的项目通常包含`build.gradle`或`pom.xml`,可以用Gradle或...