1.用构造器来实例化

  1. <bean id="hello2" class="com.hsit.hello.impl.ENhello" />

2.使用静态工厂方法实例化

要写一个bean,bean中定义一个静态方法,生成bean,配置factory-method指定静态方法,运行时容器就会自动调用静态方法生成实例

bean

  1. package com.hsit.hello.impl;
  2. import com.hsit.hello.IHello;
  3. public class CHhello implements IHello {
  4. private String msg;
  5. public void sayHello() {
  6. System.out.println("中文" + msg);
  7. }
  8. public String getMsg() {
  9. return msg;
  10. }
  11. public void setMsg(String msg) {
  12. this.msg = msg;
  13. }
  14. @Override
  15. public String toString() {
  16. // TODO Auto-generated method stub
  17. return "Chinese";
  18. }
  19. public static CHhello createInstance() {
  20. System.out.println("jingtai");
  21. return new CHhello();
  22. }
  23. }

配置文件

  1. <bean id="hello1" class="com.hsit.hello.impl.CHhello" factory-method="createInstance" lazy-init="true">
  2. <!-- setter注入 -->
  3. <property name="msg" value="哈哈">
  4. </property>
  5. </bean>

3.使用实例工厂方法实例化

要写两个bean,一个是要实例化的bean,另一个是工厂bean。容器先实例化工厂bean,然后调用工厂bean配置项factory-method中指定的方法,在方法中实例化bean

工厂bean:

  1. package com.hsit.hello.impl;
  2. public class ENhelloFactory {
  3. public ENhello createInstance() {
  4. System.out.println("ENhello工厂");
  5. return new ENhello();
  6. }
  7. public ENhelloFactory() {
  8. System.out.println("chuanjian");
  9. }
  10. }

要实例化的bean:

  1. package com.hsit.hello.impl;
  2. import com.hsit.hello.IHello;
  3. public class ENhello implements IHello {
  4. @Override
  5. public void sayHello() {
  6. // TODO Auto-generated method stub
  7. System.out.println("hello");
  8. }
  9. @Override
  10. public String toString() {
  11. // TODO Auto-generated method stub
  12. return "我是ENhello";
  13. }
  14. }

配置文件

  1. <bean id="eHelloFactory" class="com.hsit.hello.impl.ENhelloFactory" />
  2. <!-- factory-bean填上工厂bean的id,指定工厂bean的工厂方法生成实例,class属性不填 -->
  3. <bean id="example" factory-bean="eHelloFactory" factory-method="createInstance"/>

测试代码

  1. BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
  2. ENhello eNhello = (ENhello) factory.getBean("example");
  3. System.out.println(eNhello.toString());
  4. factory.getBean("hello1");

Spring实例化bean的三种方法的更多相关文章

  1. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring实例化Bean的三种方法

    在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象.在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化.静态工厂方式实例化和实例工厂方式实例化. 构造器实例化 ...

  2. spring注入bean的三种方法

    在Spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中 ...

  3. Spring 实例化bean的三种方式

    第一种方法:直接配置Bean <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的bean.XML ...

  4. Spring、实例化Bean的三种方法

    1.使用类构造器进行实例化 <bean id="personIService" class="cn.server.impl.PersonServiceImpl&qu ...

  5. Spring实例化Bean的三种方式及Bean的类型

    1.使用类构造器实例化  [默认的类构造器] <bean id=“orderService" class="cn.itcast.OrderServiceBean"/ ...

  6. Spring 实例化bean的三种方式:

    方法一:使用构造器实例化bean java代码: package com.model; public class User { private String username; public User ...

  7. Spring -- 配置bean的三种方法

    配置通过静态工厂方法创建的bean public class StaticBookFactory { //静态工厂方法: public static Book getBook(String bookN ...

  8. spring实例化bean的三种方式

    公共使用的实体

  9. Spring学习之实例化bean的三种方式

    实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...

随机推荐

  1. SVG绘制矩形简单示例分享

    最近我初学HTML5,刚在一步步学习SVG,积累了一些个人心得和程序代码,希望和大家分享,今天分享“svg之矩形”部分 1.简单矩形 效果图如下: 关键代码: <svg xmlns=" ...

  2. skymvc文件上传支持多文件上传

    skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...

  3. 安装mysql-python需要碰到错误:Unable to find vcvarsall.bat 的解决方法

    1.发现从https://pypi.python.org/pypi/MySQL-python/1.2.5#downloads  下载下来的python版本是2.7

  4. 工作流(worfflow)

    -- 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务 ...

  5. Highcharts 本地导出图片和PDF asp.net mvc版

    啰嗦: 现在大家利用Highcharts开发时,有时候会遇到导出的功能问题,但是highcharts默认是链接自己的服务器上进行处理,但是有时候我们会连不上他的服务器,所以我们要让他在我们的服务器上进 ...

  6. android SurfaceView绘制 重新学习--基础绘制

    自从大二写了个android游戏去参加比赛,之后就一直写应用,一直没用过SurfaceView了,现在进入了游戏公司,准备从基础开始重新快速的学一下这个,然后再去研究openGL和游戏引擎. 直接上代 ...

  7. XSS与字符编码的那些事儿

    目录 0x00:基本介绍 0x01:html实体编码 0x02:新增的实体编码 实体编码变异以及浏览器的某些工作原理! 0x03:javascript编码 0x04:base64编码 0x05:闲扯 ...

  8. 任正非:华为三十年大限快到了 想不死就得新生(建立战略预备队)cool

    华为心声社区官方微信今日发布了任正非8月15日在华为公司内部做的关于战略预备队建设汇报的讲话.讲话内容中提到,华为公司需要组织.结构.人才等所有一切都变化,通过变化使新的东西成长起来.   任正非表示 ...

  9. leetcode面试准备:Minimum Size Subarray Sum

    leetcode面试准备:Minimum Size Subarray Sum 1 题目 Given an array of n positive integers and a positive int ...

  10. 转:十九、Java的接口及实例

    http://blog.csdn.net/liujun13579/article/details/7736116 一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合 ...