1. 程式人生 > >Spring 靜態工廠和例項工廠

Spring 靜態工廠和例項工廠

什麼是靜態工廠?

工廠類所有方法都是靜態的

/**
 * 裡面一般來說都是靜態的方法
 * @author memory_coder
 * @2017年10月2日 上午10:05:31
 */
public class StaticBeanFactory {
	public static User getUser()
	{
		return new UserImpl();
	}
}
在Application.xml檔案中的配置

<!-- class為靜態工廠類的全限定類名 factory-method為使用的靜態方法
<bean id="user" class="com.slxy.factory.StaticFactory" factory-method="getUser" ></bean>

什麼是例項工廠?

工廠類的方法為靜態方法

/**
 * @author memory_coder
 * @2017年10月3日 下午6:49:44
 */
public class InstantBeanFactory {
	public User getUser()
	{
		return new UserImpl();
	}
}

在Application.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 id="userFactory" class="com.slxy.factory.InstantBeanFactory" ></bean>
		<!-- 配置工廠例項的物件 factory-bean為使用例項工廠的id屬性值   factory-method為呼叫工廠的方法-->
	<bean id="userId" factory-bean="userFactory" factory-method="createUserService"></bean>
</beans>
使用方法都一樣
/**
 * @author memory_coder
 * @2017年10月3日 下午6:57:28
 */
public class InstantBeanFactoryText {
	@Test
	public void createUserService()
	{
		// 載入spring配置檔案
		ApplicationContext context = new ClassPathXmlApplicationContext("InstantApplication.xml");
		// 獲得user例項物件
		UserS us = context.getBean("userId",User.class);
		us.addUser();
	}
}


相關推薦

Spring 靜態工廠例項工廠

什麼是靜態工廠? 工廠類所有方法都是靜態的 /** * 裡面一般來說都是靜態的方法 * @author memory_coder * @2017年10月2日 上午10:05:31 */ public class StaticBeanFactory { public

spring靜態工廠例項工廠的區別

新聞實體類NewsBean package com.tang; /** * 新聞實體類 */ public class News { String title; String content; @Override public Str

Spring靜態工廠例項工廠的使用 重溫自己對於Spring 的理解

靜態工廠方法:直接呼叫靜態方法可以返回Bean的例項 package com.zw.factory;import java.util.HashMap;import java.util.Map;public class StaticCarFactory {/*** 靜態工廠方法:直接呼叫靜態方

Spring第一課:基於XML裝配bean(四),三種例項化方式:預設構造、靜態工廠例項工廠

Spring中基於XML中的裝配bean有三種方式: 1.預設構造 2.靜態工廠 3.例項工廠 1.預設構造     在我們在Spring的xml檔案中直接通過:     <bean id="名字" class="全限定類名" ></bea

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

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

Spring與代理模式例項工廠模式的整合使用

公司的一個專案,覺得這個設計挺有意思的,記錄下來,可能日後會用到。 只記錄了大概的一些具有代表性的程式碼,因修改過公司的包名等一些敏感性的關鍵字,可能class或者Interface有些錯誤,但不影響理解。 <!--門票類的呼叫。從這個bean入手理解設計模式 -

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

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

簡單介紹工廠模式(靜態工廠抽象工廠)

註明 : 以下整理的資料來源於實驗樓網站.      工廠模式(Factory Pattern)的意義就跟它的名字一樣,在面向物件程式設計中,工廠通常是一個用來建立其他物件的物件。工廠模式根據不同的引數來實現不同的分配方案和建立物件。    

PHP面向對象之選擇工廠更新工廠

dna keys app lean defined bject nts mbo array /* 選擇工廠和更新工廠模式,這個模式的類(UpdateFactory和SelectionFactory類)就是用來創建SQL語句的. 因為涉及到之前學習的內容比較多,這裏就盡量將

spring靜態代理動態代理

row main 同時 rac images 處理 解決 pro abstract 本節要點: Java靜態代理 Jdk動態代理 1 面向對象設計思想遇到的問題 在傳統OOP編程裏以對象為核心,並通過對象之間的協作來形成一個完整的軟件功能,由於對象可以繼承,因此我們可以

JAVA設計模式-工廠抽象工廠

摘抄至https://www.jianshu.com/p/3c3f6c95d7e7 本文講解GOF-23種設計模式其中的工廠方法模式和抽象工廠模式。 由於本人愛國情懷高漲,所以本文都以長安汽車作為示例,閱讀本文需要對長安汽車有一定了解。 長安悅翔V7:長安旗下一款價效比超高的緊湊型家用轎

[C#學習筆記] 靜態成員例項成員

前言:類是物件的抽象,物件是類的例項,物件有自己的屬性和方法,萬物皆物件,不可避免的,類也是一種物件,也有它自己的方法和屬性,類的成員稱為靜態成員,包括靜態資料和靜態方法,而類例項化出的物件的成員稱為例項成員。   靜態成員(static member):

靜態方法例項方法聯絡與區別

1、呼叫方式上 靜態方法依賴於類,通過類.靜態方法呼叫;例項方法依賴於類的物件,需要建立物件後,物件.例項方法使用 2、使用上 例項方法內部不能定義靜態變數,會出現編譯錯誤;例項方法可以直接呼叫靜態方法;靜態方法內部可以定義和使用例項變數,靜態方法無法直接呼叫例項方法(

類方法,靜態方法例項方法講解

1.例項方法 在程式設計裡經常用的是例項方法,直接用例項去呼叫, 只要 方法裡有self 就可以斷定是例項方法, 如 def method_name(self,*argc). 先看下邊程式碼如下: class Date: def __init__(se

Spring 靜態代理動態代理

靜態代理: 優點:   1、  實現鬆散耦合。   2、做到在不修改目標物件的功能前提下,對目標功能擴充套件。   缺點:  如果專案中有多個類,則需要編寫多個代理類,工作量大,不好修改,不好維護,不能應對變化。 模擬某位學生去考試作為例子:   下面

java 設計模式01之簡單工廠抽象工廠模式

總結一下: 簡單工廠:工廠根據條件去建立對應的具體實現物件,如果需要增加新的物件,就必須修改建立物件的介面,增加判斷條件,另外可能建立的物件下面的方法也可能有其他物件去實現相同的功能,造成混亂,比如,amd可以造cpu,也可以造網絡卡,不能建立了一個amd造cpu的

jQuery學習筆記(2)——jQuery物件 & 靜態物件例項物件 & each()方法

四、jQuery物件——偽陣列 當我們呼叫jQuery核心函式時,無論傳入的引數是函式、字串或DOM元素,最終都會返回一個jQuery物件。 jQuery物件可以看作是一個“偽陣列”。所謂“偽陣列”,就是像陣列一樣含有"length"屬性,並且含有索引從0到le

[轉]Spring依賴注入例項化(new)的差別

Spring依賴注入和例項化(new)的差別。 Sping為什麼使用依賴注入而不使用例項化物件的方式? 首先說明一下概念 依賴注入(Dependency of Injection)和控制反轉(Inversion of Control 簡稱

面試題:靜態變數例項變數的區別?

在語法定義上的區別:靜態變數前要加static關鍵字,而例項變數前則不加。         在程式執行時的區別:例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某個例項物件,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,不用建立任何

靜態方法例項方法的使用場景

靜態方法和例項方法: 1、從邏輯關係來看:(優先順序2) 若方法與類的例項不存在邏輯上的聯絡,那麼用靜態方法。 反之則最好使用例項化方法。 2、從效能角度:(優先順序3) 若方法經常被呼叫,則用靜態方法更佳,因為這樣可以避免頻繁地例項化物件導致的資源佔用,提高效能。