方法一:使用構造器實例化beanjava
java代碼:app
package com.model; public class User { private String username; public User(){ } public User(String username){ this.setUsername(username); } public void sayHello(){ System.out.println("hello "); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
配置文件:ide
<!--方法一:使用構造器實例化bean --> <bean id="user" class="com.model.User"></bean>
測試代碼:測試
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); //方法一:使用構造器實例化bean User user = (User)applicationContext.getBean("user"); user.sayHello();
方法二:使用靜態工廠方法實例化bean
java代碼:this
package com.test; public class StaticFactory { private static StaticFactory staticFactory = new StaticFactory(); public static StaticFactory getBean() { return staticFactory; } public void say() { System.out.println("new Instance!"); } }
配置文件:spa
<!--方法二:使用靜態工廠方法實例化bean --> <bean id="staticFactory" class="com.test.StaticFactory" factory-method="getBean"/>
測試代碼:code
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); //方法二:使用靜態工廠方法實例化bean StaticFactory staticFactory = (StaticFactory)applicationContext.getBean("staticFactory"); staticFactory.say();
方法三:使用實例工廠方法實例化beanxml
java代碼:blog
package com.test; import com.dao.UserDao; import com.dao.impl.UserDaoImpl; public class InstanceBean { private static UserDao userDaoA = new UserDaoImpl(); //該方法必須是非靜態的 public UserDao getBeanInstance() { return userDaoA; } }
接口UserDao: package com.dao; import com.model.User; public interface UserDao { public void add(User user); public void findByid(String id); } 實現類UserDaoImpl: package com.dao.impl; import com.dao.UserDao; import com.model.User; public class UserDaoImpl implements UserDao { private String hello; @Override public void add(User user) { System.out.println("方法三:qwqwqwq!!!"); } @Override public void findByid(String id) { } public String getHello() { return hello; } public void setHello(String hello) { this.hello = hello; } }
配置文件:接口
<!--方法三:使用實例工廠方法實例化bean --> <bean id="instanceBean" class="com.test.InstanceBean"/> <bean id="userDaoA" factory-bean="instanceBean" factory-method="getBeanInstance"></bean>
測試代碼:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); //方法三:使用實例工廠方法實例化bean UserDao userDao = (UserDao)applicationContext.getBean("userDao"); String username = "pppp"; userDao.add(new User(username));