在spring中,bean的示例化有三种方式。

1、使用类的无参构造函数创建

2、使用静态工厂方式创建

3、使用实例化工厂方式创建。

具体代码如下

静态工厂方式:

Bean2.java

package cn.itcast.bean;

public class Bean2 {

    public void add(){
System.out.println("Bean2................");
}
}

Bean2Factory.java

package cn.itcast.bean;

public class Bean2Factory {
//静态方法,返回Bean2对象 public static Bean2 getBean2(){
return new Bean2();
}
}

IoC方式:

user.java

package cn.itcast.ioc;

public class User {

    public void add(){
System.out.println("add........");
} }

实例化工厂方式:

Bean3.java

package cn.itcast.bean;

public class Bean3 {

    public void add(){
System.out.println("Bean3................");
}
}

Bean3Factory.java

package cn.itcast.bean;

public class Bean3Factory {
public Bean3 getBean3(){
return new Bean3();
}
}

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.xsd"> <!-- ioc入门 -->
<bean id="user" class="cn.itcast.ioc.User"></bean> <!-- 使用静态工厂类创建对象 -->
<bean id="Bean2" class="cn.itcast.bean.Bean2Factory" factory-method="getBean2"></bean> <!-- 使用实例工厂创建对象 -->
<bean id="Bean3Factory" class="cn.itcast.bean.Bean3Factory"></bean>
<bean id="Bean3" factory-bean="Bean3Factory" factory-method="getBean3"></bean>
</beans>

测试类:

package cn.itcast.ioc;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.bean.Bean2;
import cn.itcast.bean.Bean3; public class TestIOC { @Test
public void testUser() { // 1 加载spring配置文件。根据创建对象
ApplicationContext context = new ClassPathXmlApplicationContext(
"bean1.xml"); //2 得到配置创建的文件 ioc
User user = (User)context.getBean("user") ;
System.out.println(user); user.add(); //使用静态工厂类创建对象
Bean2 bean2 =(Bean2)context.getBean("Bean2");
System.out.println(bean2);
bean2.add() ; // 使用实例工厂创建对象
Bean3 bean3 = (Bean3) context.getBean("Bean3");
System.out.println(bean3);
bean3.add();
}
}

运行测试类,结果显示

最新文章

  1. LINQ系列:LINQ to XML类
  2. Entity Framework 实体框架的形成之旅--数据传输模型DTO和实体模型Entity的分离与联合
  3. Hadoop设置环境变量注意事项
  4. TP框架知识点
  5. A Tour of Go Switch with no condition
  6. Qt学习笔记-1 开发环境建立
  7. ExtJS4 动态加载
  8. 使用ffmpeg 对视频截图,和视频转换格式
  9. Linux环境进程间通信(五): 共享内存(下)
  10. python基础操作_集合_三元运算
  11. 英语app分析
  12. vector向量容器的一些基本操作
  13. 《C#并发编程经典实例》学习笔记—2.5 等待任意一个任务完成 Task.WhenAny
  14. Java 学习笔记 使用并发包ReentrantLock简化生产者消费者模式代码
  15. ubuntu下安装和配置pycharm和pyqt5
  16. mongodb 添加字段并设置默认值
  17. odoo开发笔记 -- 时区问题
  18. Jenkins 配置用户权限错误导致无法登录解决方案
  19. DOM父节点、子节点例子
  20. Yii 汉化翻译

热门文章

  1. lost+found目录有啥用?
  2. Linux上安装java JDK
  3. 用.NET WebService Studio调试Web Service解决SOAPAction的问题
  4. zookeeper安装小记
  5. win下wamp虚拟主机配置
  6. python------virtualenv&amp;virtualenvwrapper的使用
  7. GCC C语言 DLL范例,含源码
  8. (转)explain、db2exfmt 命令的使用:文本输出执行计划
  9. 执行shell脚本的四种方式(转)
  10. 关于 OpenIdConnect 认证启用 HTTPS 回调 RedirectUri 不生效问题