依然直接上代码,代码才是王道!!!
App.java
package com.mkyong.common;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.mkyong.customer.services.CustomerService;
public class App
{
public static void main( String[] args )
{
ConfigurableApplicationContext context =
new ClassPathXmlApplicationContext(new String[] {"Spring-Customer.xml"});
CustomerService cust = (CustomerService)context.getBean("customerService");
System.out.println(cust);
context.close();
}
}
CustomerService.java
package com.mkyong.customer.services;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
public class CustomerService
{
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@PostConstruct
public void initIt() throws Exception {
System.out.println("Init method after properties are set : " + message);
}
@PreDestroy
public void cleanUp() throws Exception {
System.out.println("Spring Container is destroy! Customer clean up");
}
}
Spring-Customer.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<bean id="customerService" class="com.mkyong.customer.services.CustomerService">
<property name="message" value="i'm property message" />
</bean>
</beans>
AppTest.java
package com.mkyong.common;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
分享到:
相关推荐
Java @PostConstruct 和 @PreConstruct 注解详解 Java 中的 @PostConstruct 和 @PreConstruct 注解是从 Java EE5 规范开始引入的,它们是用来修饰 Servlet 生命周期的两个重要的注解。下面将详细介绍这两个注解的...
在Java世界中,`@PostConstruct` 和 `@PreDestroy` 是两个非常重要的注解,它们主要用于管理组件的生命周期,特别是在使用Spring框架或者Java EE应用中。这两个注解是JSR 250规范的一部分,提供了对bean初始化和销毁...
获取springbean对象
在Spring框架中,`@PostConstruct` 是一个用于标记初始化方法的注解,该方法会在对象完全初始化并准备好...通过以上分析和解决方案,你应该能够解决`@PostConstruct`被多次执行的问题,确保Spring定时任务正常运行。
今天,我们将深入探讨 @PostConstruct 的用法和原理,并通过示例代码来演示其应用场景。 @PostConstruct 的原理 --------------------- @PostConstruct 注解是 Java EE 5 中引入的一个注解,用于标记某个方法在 ...
`@POSTConstruct` 和 `@PreDestroy` 注解允许我们在Bean初始化完成后执行特定的操作,并在Bean销毁之前执行清理工作。本示例详细介绍了如何在Spring中使用这两个注解来定制Bean的生命周期行为。 首先,让我们了解...
@postConstruct 所标注的方法 内部是靠的spring提供的两个后置处理器(InitDestroyAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor)共同 协调分布处理完成的。 这2点也是网上绝大部人没讲明白的...
"Spring Boot 容器加载完成后执行特定操作" Spring Boot 框架提供了多种方式来执行容器加载完成后的特定操作,例如使用 ApplicationListener...这些方法可以满足不同场景下的需求,使得我们的应用程序更加灵活和可靠。
除了使用注解和接口,你还可以在Spring Boot的主启动类中直接定义一个初始化方法。这种方法适用于一些简单的初始化逻辑,通常不推荐在主启动类中包含过多业务逻辑,因为它会使得启动类变得复杂。示例如下: ```...
总结来说,Spring的IoC方法注入提供了一种灵活的方式来管理和初始化对象,通过`@PostConstruct`和`@PreDestroy`注解,或者实现`InitializingBean`和`DisposableBean`接口,我们可以在对象生命周期的关键点执行特定的...
该考试涵盖Java EE Platform 5的相关技术,重点在于评估考生对于EJB(Enterprise JavaBeans)、JPA(Java Persistence API)等关键技术的理解和应用能力。 #### 3. 技能要求 考生需要掌握以下核心技能: - EJB的...
在使用@PostConstruct时,一个典型的应用场景是在父类中定义了一个属性,但是父类中并没有提供该属性的setter方法,子类需要通过自己的方法来设置该属性。这时,可以在子类的适当方法上使用@PostConstruct注解来完成...
总结来说,`spring MVC 初始启动concurrent blocking queue`涉及的是在Spring MVC应用启动时使用`@PostConstruct`注解初始化并使用`BlockingQueue`进行并发控制和任务处理。这一技术可以帮助提高系统性能,特别是在...
本文将详细讨论在Spring中使用`@PostConstruct`和`@PreDestroy`注解以及`InitializingBean`和`DisposableBean`接口来控制Bean的生命周期。 1. **使用@PostConstruct和@PreDestroy注解** `@PostConstruct`注解标记...
在本文中,我们详细讲解了Spring Bean的初始化和销毁,包括使用@Bean的initMethod和destroyMethod、JSR-250的@PostConstruct和@PreDestroy注解等多种方式来控制Bean的生命周期。在实际开发中,我们可以根据需要选择...
本文将详细介绍几个关键的注解,包括 @Autowired、@Qualifier、@Resource 和 @PostConstruct,以及它们在实际开发中的应用。 ## 1. @Autowired 注解 @Autowired 是 Spring 提供的一种自动装配机制,它可以根据类型...
本篇将详细解释两种实现方式:基于XML配置和使用`@PostConstruct`注解。 首先,让我们探讨**XML配置方式**。在Spring的IoC(Inversion of Control)容器中,XML配置文件是定义bean及其依赖关系的传统方式。在题目...
在Java企业版(Java EE)开发中,Enterprise JavaBeans(EJB)是一个核心组件,用于构建可部署在...理解EJB的生命周期和初始化过程,有助于开发者更好地理解和利用EJB容器提供的功能,提高应用程序的效率和可靠性。
在Spring框架中,加载顺序是理解应用程序启动过程的关键部分,涉及到bean的实例化、...在实际开发中,合理利用`@PostConstruct`、`构造方法`和`@Autowired`可以有效地控制Bean的生命周期,提高代码的可维护性和灵活性。