一.单例模式
单例:[启动容器]—>通过构造方法(创建对象)—->调用set方法(注入)—>调用init方法(初始化)—-[容器关闭]—–>调用destroy方法(销毁)
applicationContext.xml:
UserServiceImpl:
/**
* 业务层实现类
*/
public class UserServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl() {
System.out.println("调用构造方法创建bean...");
}
public void setUserDao(UserDao userDao) {
System.out.println("调用set方法注入值...");
this.userDao = userDao;
}
public void init(){
System.out.println("调用init方法初始化bean...");
}
public void destroy(){
System.out.println("调用destroy方法销毁bean...");
}
public void addUser(){
userDao.addUser();
}
}
测试:
public static void main(String[] args) {
ClassPathXmlApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
//关闭容器
ac.close();
}
结果:
二.多例bean
多例:[使用时getBean]—>通过构造方法(创建对象)—->调用set方法(注入)—>调用init方法(初始化)—服务器托管网-[jvm垃圾回收]—–>调用destroy方法(销毁)
applicationContext.xml:
UserServiceImpl:
public class UserServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl() {
System.out.println("调用构造方法创建bean...");
}
public void setUserDao(UserDao userDao) {
System.out.println("调用set方法注入值...");
this.userDao = userDao;
}
public void init(){
System.out.println("调用init方法初始化bean...");
}
public void destroy(){
System.ou服务器托管网t.println("调用destroy方法销毁bean...");
}
public void addUser(){
userDao.addUser();
}
}
测试:
public static void main(String[] args) {
ClassPathXmlApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
//使用对象
ac.getBean("userService");
}
结果:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net