1.xml
在配置文件
bean.xml中,bean标签通过配置属性init-method,可以在执行该bean的时候,首先执行该属性配置的方法,配置属性destroy-method,可以在执行完bean的时候,执行它配置的方法(代码中要显示调用destroy方法)。bean.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="userDAOImpl" class="com.test.dao.impl.UserDAOImpl"></bean> <bean id="userService" class="com.test.service.UserService" init-method="init" destroy-method="destory"> <property name="userDAO"> <ref bean="userDAOImpl" /> </property> </bean> </beans>
UserService.java
package com.test.service; import com.test.dao.UserDAO; import com.test.model.User; public class UserService { private UserDAO userDAO; public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public void init(){ System.out.println("init"); } public void destory(){ System.out.println("destory"); } }
2.annotation
UserDAOImpl.java
package com.test.dao.impl; import org.springframework.stereotype.Component; import com.test.dao.UserDAO; import com.test.model.User; @Component("userDAOImpl") public class UserDAOImpl implements UserDAO { public void save(User user) { System.out.println("user saved!"); } }
UserService.java
package com.test.service; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.annotation.Resource; import org.springframework.stereotype.Component; import com.test.dao.UserDAO; import com.test.model.User; @Component("userService") public class UserService { private UserDAO userDAO; public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return userDAO; } @Resource(name="userDAOImpl") public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } @PostConstruct public void init(){ System.out.println("init"); } @PreDestroy public void destory(){ System.out.println("destory"); } }
公共junit测试类
UserServiceTest.java
package com.test.service; import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.test.model.User; public class UserServiceTest { @Test public void testAdd() throws Exception { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); UserService service = (UserService) applicationContext.getBean("userService"); User u = new User(); u.setUsername("zhangsan"); u.setPassword("123"); service.add(u); applicationContext.destroy(); } }
相关推荐
请解释Spring Bean的生命周期 Spring Bean的作用域之间有什么区别 什么是Spring inner beans Spring框架中的单例Beans是线程安全的么 请举例说明如何在Spring中注入一个Java Collection 如何向Spring Bean中注入一个...
6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.6.1. 理解AOP代理 6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain ...
这些新特性包括:注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加...
九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @...
注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加注解的方法上,在...
3.5.2 ApplicationContext中Bean的生命周期 3.6 小结 第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 ...
九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @...
6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.6.1. 理解AOP代理 6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain ...
3.5.2 ApplicationContext中Bean的生命周期 3.6 小结 第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 ...
注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加注解的方法上,在...
xml java系统源码 springdemo spring3的IOC,AOP,JDBC,orm等各个模块的使用示例...6.bean的生命周期 init-method,destroy-method,initiableBean, DisposableBean,lasyinit,singleton,prototype @PostConstruct @P
java7源码翻译回顾春天 Spring 1.0 ------> 2004 Spring 2.0 ------> ...XML ...Spring ...Annotation ...Spring ...Spring ...Spring ...xml ...spring 容器中。...Spring ...的生命周期。 Java配置 Spring 假设它创建的对象
对覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理 与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等 便于测试——归功于IoC 缺点: 大量的XML...
6.2.4 bean的作用域与生命周期 374 6.2.5 基于xml方式的bean装配 376 6.2.6 基于annotation方式的bean装配 381 6.2.7 基于xml方式的aop实现 386 6.2.8 基于annotation方式的aop实现 391 6.3 spring 2.5事务管理...
8.6.1 无状态Session Bean的生命周期 321 8.6.2 有状态Session Bean的生命周期 322 8.6.3 定制Session Bean的生命 周期行为 323 8.7 在Session Bean中使用事务 327 8.7.1 容器管理事务 327 8.7.2 Bean管理事务 330 ...
Spring MVC优点: 对Spring MVC覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理;与许多表示层技术/框架无缝集 成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等。便于测试...
第三章 Servlets生命周期................222 第四章 资源访问 ......................225 第五章 状态跟踪...230 第六章 过滤器 ...234 第七章 Web Application Life Cycle Events ........................235 ...