1. 程式人生 > >spring 方法注入 lookup方法注入

spring 方法注入 lookup方法注入

1、無狀態bean 與有狀態bean
 無狀態Bean    bean一旦例項化就被加進會話池中,各個使用者都可以共用。即使使用者已經消亡,bean 的生命期也不一定結束,它可能依然存在於會話池中,供其他使用者呼叫。 有狀態Bean     有狀態會話bean :每個使用者有自己特有的一個例項,在使用者的生存期內,bean保持了使用者的資訊,即“有狀態”;一旦使用者滅亡(呼叫結束或例項結束),bean的生命期也告結束。即每個使用者最初都會得到一個初始的bean。 也就是說,一次會話結束,Bean的生命週期就結束的,就是有狀態的Bean。 無狀態Bean 一般配置成sigleton 單例模式  2、lookup方法注入
如果一個單例模式的Bean Boss 有一個property模式的Bean Car,那麼要想在每次呼叫boss時候的時候都想得到一個新Car bean?該怎麼做。要知道,Boss 是單例模式的,只會被建立一次,注入一次屬性,也就是說,即使Car是property模式,那也是隻會一個相同的Car,因為Boss只會被注入一次。 如果 要達到這個目的,可以讓Boss 實現BeanFactoryAware 介面,讓Boss能夠從容器中訪問引用。Boss的getCar()方法,可以採用如下 的實現方式 public Car getCar(){      return (Car) factory.getBean("car"); } 同時,spring ioc 也提供瞭解決方法。 那就是lookup 方法注入 首先宣告一個MagicBoss介面 public
interface MagicBoss {     Car getCar(); } 然後在配置檔案中 通過 如下的方式實現 <bean id="car" class="com.aowin.modle.Car" scope="prototype"> <property name="brand"><value>紅旗</value></property> <property name="price"><value>12</value></property> </bean> <
bean id="magicBoss" class="com.aowin.modle.MagicBoss"> <lookup-method name="getCar" bean="car"/> </bean> 這樣,每次呼叫的時候,magicBoss都會從容器中獲取最新的Car 。 同時應該注意的是Car 的作用域不能是singleton(預設是singleton 所以要手工配置成 propoty)。這樣的話,上面的配置是依然是起作用的,但是每次取出的都是同一個Bean.

相關推薦

spring 方法注入 lookup方法注入

1、無狀態bean 與有狀態bean  無狀態Bean    bean一旦例項化就被加進會話池中,各個使用者都可以共用。即使使用者已經消亡,bean 的生命期也不一定結束,它可能依然存在於會話池中,供其他使用者呼叫。 有狀態Bean     有狀態會話bean :每個使

碼農小汪-spring框架學習之3-spring Method injection(方法注入Lookup method injection

方法注入 單例依賴非單例 一般情況,容器中的大部分的 bean 都是單例的。當單例 bean 依賴另一個單例bean,或者一個非單例 bean 依賴另個非單例 bean 是,通常是將另一個 bean定義成其他 bean 的屬性。當 bean 的生命週期不同時

Spring-方法注入lookup方法替換MethodReplacer介面

問題 無狀態Bean的作用域一般可以配置為singleton(單例模式),如果我們往singleton的Pilot類中注入prototype的Plane類,並希望每次呼叫Pilot的getPlane()方法都能返回一個新的plane Bean ,該怎

spring boot去除掃描自動注入依賴方法——Spring常用註解使用方法

問題: 最近做專案的時候,需要引入其他的jar。然後還需要掃描這些jar裡的某些bean。於 是使用註解:@ComponentScan 這個註解直接指定包名就可以,它會去掃描這個包下所有的class,然後判斷是否解析: 原始碼: public @interface SpringBoo

Quartz Job類無法注入spring bean問題解決方法

問題描述: 在Quartz的任務類中,無法使用autowired注入spring bean @Component @PersistJobDataAfterExecution @DisallowConcurrentExecution publi

Spring容器框架、spring ioc、兩種注入方法set注入與構造器注入

#1>spring是什麼? spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架 ——從大小與開銷兩方面而言Spring都是輕量的 ——通過控制反轉(IOC)的技術達到鬆耦合的目的 ——提供了面向切面程式設計的豐富支援,允許通過分離應用的業務

spring專案中靜態方法中使用注入的bean

1. 說明: 專案中涉及到dubbo服務,在專案中需要將這個服務作為一個bean注入,由於本人需要在靜態方法中使用這個bean,所以如果使用類似@Autowire等註解注入時會編譯報錯。 2. 解決方法: 自己寫一個工具類,通過spring上下文獲取這個bean。轉成靜態

Spring的兩種依賴注入方式:setter方法注入與構造方法注入

   Spring的兩種依賴注入方式:setter注入與構造方法注入,這兩種方法的不同主要就是在xml檔案下對應使用property和constructor-arg屬性, 例如: property屬

laravel如何查詢門臉及注入方法

門臉模式 通過 config/app.php 檢視別名對應類名 Illuminate\Support\Facades\Log ,檢視 LoggerInterface 類檔案,得:名稱空間+介面名 Psr\Log\LoggerInterface 方法1: 通

PHP使用PDO簡單實現防止SQL注入方法

方法一:execute代入引數  <?php if(count($_POST)!= 0) { $host = 'aaa'; $database = 'bbb'; $username = 'ccc'; $password = '***'; $num

轉:PHP中防止SQL注入方法

【一、在伺服器端配置】        安全,PHP程式碼編寫是一方面,PHP的配置更是非常關鍵。 我們php手手工安裝的,php的預設配置檔案在 /usr/local/apache2/conf/php.ini,我們最主要

Python中防止sql注入方法詳解

SQL注入是比較常見的網路攻擊方式之一,它不是利用作業系統的BUG來實現攻擊,而是針對程式設計師程式設計時的疏忽,通過SQL語句,實現無帳號登入,甚至篡改資料庫。下面這篇文章主要給大家介紹了關於Python中防止sql注入的方法,需要的朋友可以參考下。   前言 大家

sqli注入方法以及可能導致sql注入的地方

使用“--”註解後面的sqli語句的時候,如果“--”後面沒有空格,可能會失敗 "#" 需要編碼為%23 有時候注入之後會有多個條目顯示,但是返回條件會判斷是不是隻有1條,這個時候可以使用limit關鍵詞,一條一條顯示 通過在輸入引數裡面,輸入"\"字元,破壞原先sq

靜態內部類使用注入方法屬性

前言 /** * @Desc: 獲取access_toaken * @Author HealerJean * @Date 2018/5/25 上午11:34. */ @Slf4

轉載:繞過防注入方法

1、運用編碼技術繞過如URLEncode編碼,ASCII編碼繞過。例如or 1=1即%6f%72%20%31%3d%31,而Test也可以為CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。 2、通過空格繞過如兩個空格代替一個空格,用Tab代替空格等,或者刪除所有空格,如or’

SpringMvc通過自定義註解在方法的引數中注入資料

說一個場景,有時候我們做後臺業務的時候,經常需要取session中儲存的使用者資訊,所以免不了一直需要寫下面這一段又長又無聊的程式碼: MemberCommand memberCommand = (MemberCommand) request.getSes

淺析php過濾html字串,防止SQL注入方法

本篇文章是對php中過濾html字串,防止SQL注入的方法進行了詳細的分析介紹,需要的朋友參考下   批量過濾post,get敏感資料 複製程式碼 程式碼如下: $_GET = stripslashes_array($_GET); $_POST = st

SpringMVC註解@Autowired和@Qualifier 自動注入[根據型別注入] @Autowired 可以對成員變數、方法以及建構函式進行註釋, @Qualifier 的

@Autowired和@Qualifier  自動注入[根據型別注入]     @Autowired 可以對成員變數、方法以及建構函式進行註釋,     @Qualifier 的標註物件是成員變數、方法入參、建構函式入參。     ps:兩者結合使用相當於@Resource

轉:xss注入方法及驗證方法

注:本文描述的是一般情況的xss注入方法及驗證方法,並無覆蓋所有xss情況, 步驟1:在任一輸入框中輸入以下注入字元 >"'><script>alert(XSS)</script> >"'><img src="j

一種新的攻擊方法——Java Web表示式注入

在2014年6月18日@終極修煉師曾釋出這樣一條微博: 連結的內容是一個名為Jenkins的服務,可以在沒有password的情況下受到攻擊。而攻擊方法比較有趣,Jenkins提供了一個Script Console功能,可以執行Groovy 指令碼語言。下面我們來看