就是在new ClassPathXMLApplicationContext 的时候是否就直接在内存中new 出来,如果是对象比较的情景下 ,为了提高程序初始化的速度,可以用用。
如果设置为 true 了,只有在调用 getBean 等方法获取的时候,才实例化类
配置:
1 lazy-init="true" ,可取的值 true/false/default
类的生命周期开始调用的方法: 1 init-method="init"
类的生命周期结束调用的方法: 1 destroy-method="destroy"
UserService 类:
1 package com.bjsxt.service;
2
3 import com.bjsxt.dao.UserDAO;
4 import com.bjsxt.model.User;
5
6 public class UserService {
7
8 private UserDAO userDAO;
9
10 public void init(){
11 System.out.println("init");
12 }
13
14 public UserService(UserDAO userDAO){
15 super();
16 this.userDAO = userDAO;
17 }
18
19 public void addUser(User u){
20 this.userDAO.save(u);
21 }
22
23 public UserDAO getUserDAO() {
24 return userDAO;
25 }
26
27 public void setUserDAO(UserDAO userDAO) {
28 this.userDAO = userDAO;
29 }
30
31 public void destroy(){
32 System.out.println("destroy");
33 }
34
35 }
UserService的xml配置:
1 <bean id="userService" class="com.bjsxt.service.UserService" scope="prototype" lazy-init="true" init-method="init" destroy-method="destroy">
2 <constructor-arg>
3 <ref bean="u"/>
4 </constructor-arg>
5 </bean>
代码链接: http://pan.baidu.com/s/1kUVlB0r 密码: cum2
jar包链接: http://pan.baidu.com/s/1qYRTGEo 密码: fejx