当前位置:首页 > 全部子站 > IT > 思科认证

Spring的三种实例化Bean的方式

来源:长理培训发布时间:2017-12-19 14:09:24

  Spring的三种实例化Bean的方式   1,xml配置使用bean的类构造器
  2,xml配置+factory类,使用静态工厂方法实例化
  3,xml配置+factory类,使用实例工厂方法实例化
  以下分别说明
  1,xml配置使用bean的类构造器   请参照前一篇文章《第一个Spring程序,HELLOWORLD》。
  2,xml配置+factory类,使用静态工厂方法实例化
  请参照以下代码中蓝字的部分,红字的部分为第三种方法所用。
  xml文件配置
  xml文件名:beans.xml
  文件内容:
  
  
  
  
  
  
  
  
  工厂java文件
  文件名:HelloBeanFactory.java
  文件内容:
  package test.service.impl;
  import test.service.Hello;
  public class HelloBeanFactory {
  public static Hello createHelloBean() {
  return new HelloBean();
  }
  }
  bean接口文件
  文件名:Hello.java
  文件内容:
  package test.service;
  public interface Hello {
  public void sayHello();
  public void sayHello2();
  public void sayHello3();
  }
  bean实现文件
  文件名:HelloBean.java
  文件内容:
  package test.service.impl;
  import test.service.Hello;
  public class HelloBean implements Hello {
  public void sayHello() {
  System.out.println("这是一个测试程序");
  }
  @Override
  public void sayHello2() {
  System.out.println("这是一个测试程序,测试静态工厂创建bean");
  }
  @Override
  public void sayHello3() {
  System.out.println("这是一个测试程序,测试实例工厂创建bean");
  }
  }
  3,xml配置+factory类,使用实例工厂方法实例化
  xml文件配置
  xml文件名:beans.xml
  文件内容:参照方法2中的红字部分
  工厂java文件
  文件名:HelloBeanInstanceFactory.java
  文件内容:
  package test.service.impl;
  import test.service.Hello;
  public class HelloBeanInstanceFactory {
  public Hello createHelloBean() {
  return new HelloBean();
  }
  }
  bean接口文件
  文件名:Hello.java
  文件内容:参照方法2中的红字部分
  bean实现文件
  文件名:HelloBean.java
  文件内容:参照方法2中的红字部分
  好,最后测试文件
  文件名:FirstSpring.java
  文件内容:
  package test.spring;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.support.ClassPathXmlApplicationContext;
  import test.service.Hello;
  public class FirstSpring {
  public static void main(String args) {
  testHello();
  testHelloForStaticFactory();
  testHelloForInstanceFactory();
  }
  public static void testHello() {
  ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
  Hello hello =(Hello) applicationContext.getBean("sayhello");
  hello.sayHello();
  }
  public static void testHelloForStaticFactory() {
  ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
  Hello hello =(Hello) applicationContext.getBean("sayhello2");
  hello.sayHello2();
  }
  public static void testHelloForInstanceFactory() {
  ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
  Hello hello =(Hello) applicationContext.getBean("sayhello3");
  hello.sayHello3();
  }
  }www.Exam8.CoM考试就到考试吧
  都写完了,来执行一下,结果输出:
  这是一个测试程序
  这是一个测试程序,测试静态工厂创建bean
  这是一个测试程序,测试实例工厂创建bean
  总结一下:
  三种方法的用处:
  第一种方法,通过bean的缺省构造函数创建,当各个bean的业务逻辑相互比较独立的时候或者和外界关联较少的时候可以使用。
  第二种方法,利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法险进行统一的处理等等。
  第三种方法,利用实例化factory方法创建,即将factory方法也作为了业务bean来控制,觉得1可用于集成其他框架的bean创建管理方法,2能够使bean和factory的角色互换。

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)