1. 程式人生 > >SSH筆記-Spring的靜態/例項工廠方法配置bean

SSH筆記-Spring的靜態/例項工廠方法配置bean

靜態工廠方法配置bean
1、屬性:
class : 指向靜態工廠方法的全類名
factory-method : 指向靜態工廠方法
constructor-arg: 用來配置工廠方法需要傳入的引數值
2、使用步驟:
(1)建立靜態工廠方法類
(2)建立工廠方法
(3)在靜態工廠方法類中新增靜態程式碼塊並且初始化
(4)配置靜態工廠方法bean
(5)呼叫bean
3、注意事項:配置Info類的bean例項,不是配置靜態工廠方法StaticFactoryMethod類的例項

4、作用:
呼叫靜態工廠方法建立Bean是將物件建立的過程封裝到靜態方法中,當客戶端需要物件時, 只需要簡單地呼叫靜態方法, 而不同關心建立物件的細節

例項工廠方法配置bean
1、屬性:
factory-bean : 指向實體工廠方法的bean
factory-method : 指向實體工廠方法的名字
constructor-arg : 用來配置工廠方法需要傳入的引數值
2、使用步驟:
(1)建立例項工廠類
(2)建立例項工廠方法
(3)通過建構函式初始化
(4)配置例項工廠例項
(5)通過例項工廠方法配置bean
(6)呼叫bean

3、作用:
將物件的建立過程封裝到另外一個物件例項的方法裡. 當客戶端需要請求物件時, 只需要簡單的呼叫該例項方法而不需要關心物件的建立細節

1、檔案
①TestFactoryMethod.java:測試類
②Info.java:資料模型
③StaticFactoryMethod.java:靜態工廠方法類
④InstanceFactoryMethod.java:例項工廠方法類
⑤factoryMethodContext.xml:配置檔案

2、TestFactoryMethod.java

package com.demo.sshtest.factorymethod;

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

public
class TestFactoryMethod { public static void main(String[] args) { staticFactoryMethod(); } public static void staticFactoryMethod(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("factoryMethodContext.xml"); Info info = (Info)applicationContext.getBean("staticinfos"); System.out.println(info); Info info2 = (Info)applicationContext.getBean("infos"); System.out.println(info2); } }

3、Info.java

package com.demo.sshtest.factorymethod;

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

public class TestFactoryMethod {

    public static void main(String[] args) {
        staticFactoryMethod();
    }
    public static void staticFactoryMethod(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("factoryMethodContext.xml");
        Info info = (Info)applicationContext.getBean("staticinfos");
        System.out.println(info);

        Info info2 = (Info)applicationContext.getBean("infos");
        System.out.println(info2);
    }
}

4、StaticFactoryMethod.java

package com.demo.sshtest.factorymethod;

import java.util.HashMap;
import java.util.Map;

public class StaticFactoryMethod {
//靜態工廠方法:直接呼叫某一個雷的靜態方法返回bean例項
    private static Map<String,Info>infos = new HashMap<String,Info>();

    static{
        infos.put("info1", new Info(1,"Info1"));
        infos.put("info2", new Info(2,"Info2"));
    }

    public static Info getInfos(String key) {
        return infos.get(key);
    }

}

5、InstanceFactoryMethod.java

package com.demo.sshtest.factorymethod;

import java.util.HashMap;
import java.util.Map;

public class InstanceFactoryMethod {
//例項工廠方法:例項工廠的方法,即先要建立工廠,再呼叫工廠例項方法getInfo()來返回bean例項
    private Map<String, Info>infoMap = null;

    public InstanceFactoryMethod(){
        infoMap = new HashMap<String,Info>();
        infoMap.put("info1", new Info(1,"info1"));
        infoMap.put("info2", new Info(2,"info2"));
    }

    public Info getInfo(String key){
        return infoMap.get(key);
    }
}

6、factoryMethodContext.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">

    <!-- 靜態工廠方法配置bean -->
    <!--
    1、屬性:
    class          : 指向靜態工廠方法的全類名
    factory-method : 指向靜態工廠方法
    constructor-arg: 用來配置工廠方法需要傳入的引數值
    2、使用步驟:
    (1)建立靜態工廠方法類
    (2)建立工廠方法
    (3)在靜態工廠方法類中新增靜態程式碼塊並且初始化
    (4)配置靜態工廠方法bean
    (5)呼叫bean
    3、注意事項:配置Info類的bean例項,不是配置靜態工廠方法StaticFactoryMethod類的例項
    -->
    <bean id="staticinfos" class="com.demo.sshtest.factorymethod.StaticFactoryMethod" factory-method="getInfos">
        <constructor-arg value="info2"></constructor-arg>
    </bean>

    <!-- 例項工廠方法配置bean -->
    <!--
    1、屬性:
    factory-bean    : 指向實體工廠方法的bean
    factory-method  : 指向實體工廠方法的名字
    constructor-arg : 用來配置工廠方法需要傳入的引數值
    2、使用步驟:
    (1)建立例項工廠類
    (2)建立例項工廠方法
    (3)通過建構函式初始化
    (4)配置例項工廠例項
    (5)通過例項工廠方法配置bean
    (6)呼叫bean
    -->
    <!-- 通過工廠例項 -->
    <bean id="instanceinfos" class="com.demo.sshtest.factorymethod.InstanceFactoryMethod"></bean>
    <!-- 通過例項工廠方法配置bean -->
    <bean id="infos" factory-bean="instanceinfos" factory-method="getInfo">
        <constructor-arg value="info1"></constructor-arg>
    </bean>

</beans>

7、專案目錄
專案目錄

相關推薦

SSH筆記-Spring靜態/例項工廠方法配置bean

靜態工廠方法配置bean 1、屬性: class : 指向靜態工廠方法的全類名 factory-method : 指向靜態工廠方法 constructor-arg: 用來配置工廠方法需要傳入的引數值 2、使用步

Spring 靜態工廠方法例項工廠方法配置bean

通過呼叫靜態工廠方法建立Bean呼叫靜態工廠方法建立Bean是將物件建立的過程封裝到靜態方法中。當客戶端需要物件時,只需要簡單地呼叫靜態方法,而不關心建立物件的細節。要宣告通過靜態方法建立的Bean,需要在Bean的class屬性裡指定擁有該工廠的方法的類,同時在factor

Spring——靜態工廠方法例項工廠方法建立 Bean

一、通過呼叫靜態工廠方法建立 bean: 利用靜態工廠方法可以把bean注入到IOC容器中。在XML檔案中配置bean時,要指定class的屬性為工廠的類;factory-method屬性指定工廠類中工廠方法,用於建立bean;constrctor-arg用於給工廠方法傳遞

Spring通過工廠方法配置Bean

前言: Spring配置Bean的方法有很多,這裡只介紹通過工廠方法配置Bean。 所謂工廠即含有批量的Bean,可根據傳入的引數條件返回對應的Bean例項。 工廠又分兩種: 靜態工廠通過靜態方

spring通過例項工廠方法來建立Bean

一:例項工廠方法 1.將物件的建立過程封裝到另外一個物件例項的方法裡,當客戶端需要請求物件時,只需要簡單的呼叫該例項方法而不需要關係建立物件的細節。 2.要宣告通過例項工廠方法建立的Bean 在bean的factory-bean屬性裡指定擁有該工廠方法的bean  

Spring入門學習(工廠方法配置Bean) 第十節

Spring入門學習(工廠方法配置Bean) 配置Bean的形式 Bean的配置方式 靜態工廠方法 例項工廠方法 配置Bean的形式 基於XML檔案的方式 基於註解的方式 Bean的

靜態工廠方法例項工廠方法注入bean

一、靜態工廠方法注入bean 利用靜態工廠方法可以把bean注入到IOC容器中。在XML檔案中配置bean時,要指定class的屬性為工廠的類;factory-method屬性指定工廠類中工廠方法,用於建立bean;constrctor-arg用於給工廠方法傳

工廠方法配置bean

const @override shm ack getc ring 工廠 null ati 1:靜態工廠方法配置bean 1):對象 package com.spring.helloworld; public class Car { private String

spring_(11)通過工廠方法配置Bean

通過呼叫靜態工廠方法建立Bean 呼叫靜態工廠方法建立Bean是將物件建立的過程封裝到靜態方法中.當客戶端需要物件時,只需要簡單地呼叫靜態方法,而不必關心建立物件的細節 要宣告通過靜態方法建立的Bean,需要在Bean的class屬性裡指定擁有該工廠的方法的類,同時在fac

4.spriing:Bean的生命週期/工廠方法配置Bean/FactoryBean

1.Bean的生命週期  scope:singleton/prototype  1)spring容器管理singleton作用的生命週期,spring能夠精確知道Bean合適建立,何時初始化完成,以及何時被銷燬 2)spring容器管理prototype作用的生命週期,spring只

4.spriing:Bean的生命周期/工廠方法配置Bean/FactoryBean

nts als 函數 new 利用 容器 客戶端 over The 1.Bean的生命周期 scope:singleton/prototype 1)spring容器管理singleton作用的生命周期,spring能夠精確知道Bean合適創建,何時初始化完成,以及何時被

Spring 學習(十)——通過工廠方法靜態工廠方法 & 例項工廠方法配置 bean

  通過呼叫靜態工廠方法建立 Bean •呼叫靜態工廠方法建立 Bean是將物件建立的過程封裝到靜態方法中. 當客戶端需要物件時, 只需要簡單地呼叫靜態方法, 而不同關心建立物件的細節. •要宣告通過靜態方法建立的 Bean, 需要在 Bean 的 class 屬性裡指定擁有該

spring靜態例項工廠方法

靜態 constructor-arg傳引數 <bean id="datasourceFactory" class="com.ctrip.datasource.locator.DataSourceLocator" factory-method="newInstance"/>

先碼後看 spring配置bean的幾種方式:xml直接配置靜態工廠例項工廠、factory bean、註解 侵立刪

轉自:http://blog.csdn.net/love___code/article/details/53167138 spring框架的核心在於“Ioc控制反轉”“DI依賴注入”以及“AOP面向切面程式設計”,所以在實現這些核心是最基礎的一步即為在ioc容器中配置b

Spring工廠方法(factory-bean)配置bean Spring工廠方法(factory-bean)配置bean

Spring工廠方法(factory-bean)配置bean   在spring的世界中, 我們通常會利用bean config file 或者 annotation註解方式來配置bean. 在第一種利用bean config file(spring xml)方式中,

spring通過呼叫靜態工廠方法建立Bean

一:靜態工廠方法 1.呼叫靜態工廠方法建立Bean是將物件建立Bean的建立過程封裝到靜態方法中,當客戶端需要物件時,只需要簡單的呼叫靜態方法,而不關心建立物件的細節。 2.要宣告通過靜態方法建立的Bean,需要在Bean的class屬性裡指定擁有該工廠方法的類,同時在factory-met

Spring例項Bean的三種方式_例項工廠方法

第一步:Bean3實體 public class Bean3 { } 第二步:工廠 public class Bean3Factory { public Bean3 createBean3(){ return new Bean3();

Spring學習記錄--factory-method 靜態工廠方法注入bean

例項專案結構 我們編寫好兩個類,要求是其中一個類的屬性是另一個類。例項是阿中包含使用者。 A.java package com.dybeq.pojo; /** * @author Dybe

實例/靜態工廠方法得到bean

create spa tor bean .config return col pan creat <bean id="a" class="com.yundaex.wms.config.TestBeanChild" /> <bean id="b

spring框架中工廠方法的建立和銷燬

1.編寫介面UserSerivce: public interface UserService { public void sayHello(); } 2.編寫實實現介面的方法,在該方法中除了要實現介面中的方法,還定義了inti和destory方法: public class