1. 程式人生 > >依賴注入4(例項化工廠例項化bean)

依賴注入4(例項化工廠例項化bean)

1.javabean

package com.bean;

public class Hello {

 private String hello;

 public String getHello() {
  return hello;
 }
 public void setHello(String hello) {
  this.hello = hello;
 }
 public void show() {
  System.out.println("hello:"+hello);
 }
}

2.工廠的類

package com.instanceFactory;

import com.bean.Hello;

public class InstanceFactory {

 public Hello instanceFactory() {
  return new Hello();
 }
}

3.配置檔案

<?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-4.3.xsd">
  
  <!-- 例項化工廠例項化bean 1.例項化InstanceFactory類  2.用bean的工廠方法來建立一個新的bean例項
   同樣,若bean有帶參建構函式,在配置時使用  <constructor-arg></constructor-arg>注入引數
    注:不能有class
   -->
  <bean id="hello1" class="com.instanceFactory.InstanceFactory"/>
  <bean id="hello" factory-bean="hello1" factory-method="instanceFactory"/>
</beans>

4.測試類

package com.Test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.bean.Hello;

public class Test1 {

 public static void  main(String[] arges) {
  
  ApplicationContext context=new ClassPathXmlApplicationContext("config.xml");
  Hello hello=(Hello) context.getBean("hello");
  hello.show();
 }
}