使用静态工厂来实现bean的实例化
步骤:
1 创建一个包(com.it.csx_static_factory)
2 在这个包中创建一个接口(UserService)
代码如下:
public interface UserService {
public void addUser();
}
3 在这个包中创建一个类(UserServiceImpl)
代码如下:
public class UserServiceImpl implements UserService{
@Override
public void addUser() {
// TODO Auto-generated method stub
System.out.println("addUser.....");
}
}
4在这个包中创建静态工厂类(MyBeanFactory.java)
代码如下:
//静态工厂类
public class MyBeanFactory {
// createUserService这个方法必须是静态的
public static UserService createUserService(){
return new UserServiceImpl();
}
}
5在这个包中创建一个beans.xml文件
添加约束: 《IOC beans.txt》
代码如下:
<!-- <bean id=" " class="静态工厂类的全路径" factory-method="静态方法 "> </bean>-->
<bean id="userServiceId" class="com.it.csx_static_factory.MyBeanFactory" factory-method="createUserService"></bean>
6 在这个包中编写测试类(test.java)
代码如下:
public class test {
public static void main(String[] args) {
String xmlPath="com/it/csx_static_factory/beans.xml";
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext(xmlPath);
// 第一种写法
/*UserService bean =(UserService) classPathXmlApplicationContext.getBean("userServiceId");
bean.addUser();*/
// 第二种写法
/*UserServiceImpl bean = (UserServiceImpl)classPathXmlApplicationContext.getBean("userServiceId");
bean.addUser();*/
// 第三种写法
UserService bean = classPathXmlApplicationContext.getBean("userServiceId", UserService.class);
bean.addUser();
}
}
使用实例工厂来实现bean的实例化
步骤:
1 创建一个包(com.it.csx_factory)
2 在这个包中创建一个接口(UserService)
代码如下:
public interface UserService {
public void addUser();
}
3 在这个包中创建一个类(UserServiceImpl)
代码如下:
public class UserServiceImpl implements UserService{
@Override
public void addUser() {
// TODO Auto-generated method stub
System.out.println("addUser.....");
}
}
4 在这个包中创建实例工厂类(MyBeanFactory.java)
代码如下:
// 实例工厂类
public class MyBeanFactory {
public UserService createUserService(){
return new UserServiceImpl();
}
}
5 在这个包中创建beans.xml文件
添加约束
代码如下:
<!-- 创建工厂实例 -->
<bean id="myBeanFactoryId" class="com.it.csx_factory.MyBeanFactory"> </bean>
<bean id="userServiceId" factory-bean="myBeanFactoryId" factory-method="createUserService"></bean>
6 在这个包中编写测试类(test.java)
代码如下:
public class test {
public static void main(String[] args) {
String xmlPath="com/it/csx_factory/beans.xml";
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext(xmlPath);
UserService bean = classPathXmlApplicationContext.getBean("userServiceId",UserService.class);
bean.addUser();
}
}