1.@PostConstruct说明
(2)配置文件: annotation.xml
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
2.@PreConstruct说明
被@PreConstruct修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreConstruct修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
(1)测试类:PostConstructTest.java
package com.aruisi.test;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
public class PostConstructTest {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@PostConstruct
public void init(){
System.out.println("@PostConstrut...."+message);
}
@PreDestroy
public void dostory(){
System.out.println("@PreDestroy....."+message);
}
}
(2)配置文件: annotation.xml
<?xml version="1.0" encoding="UTF-8"?>
<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-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:annotation-config />
<bean id="postConstructTest" class="com.aruisi.test.PostConstructTest">
<property name="message" value="day day up"></property>
</bean>
</beans>
(3)测试方法:
package com.aruisi.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
@SuppressWarnings("resource")
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("myTest/annotation.xml");
PostConstructTest personService = (PostConstructTest)context.getBean("postConstructTest");
personService.dostory();
}
}