spring例項化bean的幾種方式
1.使用類構造器實現例項化(bean的自身構造器)
1 <bean id = "orderService" class="cn.itcast.OrderServiceBean"/>
2.使用靜態工廠方法實現例項化
1 <bean id = "personService" class = "cn.itcast.OrderFactory" factory-method = "createOrder"/> 2 public class OrderFactory{ 3 private static OrderFactory orderFactory = newOrderFactory(); 4 private OrderFactory(); 5 public static OrderFactory createOrder(){ 6 return OrderFactory; 7 } 8 }
3.使用例項化工廠方法實現例項化(通過別的實體的bean)
1 <bean id = "personServiceFactory" class = "cn.itcast.service.OrderFactory"/> 2 <bean id = "persionService" factory-bean = "personServiceFactory" foctory-method = "createOrder"/> 3public class OrderFactory{ 4 private static OrderService orderService = new OrderService(); 5 private OrderFactory(); 6 public static OrderService createOrderServiceBean{ 7 return OrderService; 8 } 9 10 }
我們通常把負責載入bean的BeanFactory或者ApplicationContext叫做Spring容器。兩者都是通過xml配置檔案載入bean,ApplicationContext和BeanFacotry相比,主要區別在於BeanFacotry是延遲載入,在呼叫getBean()的時候才例項化要get的bean。如果Bean的某一個屬性無法注入,這時候才會丟擲異常;而ApplicationContext預設,在初始化自身的時候就會對所有的bean做例項化,除非對bean設定lazy-init="true",這樣有利於檢查所依賴屬性是否能注入。
另外,ApplicationContext提供了更多的擴充套件功能,如對要載入的資原始檔的國際化’處理,對BeanPostProcessor的處理,
所以在J2EE應用中,通常情況下我們都選擇使用ApplicationContext。不管是使用BeanFactory還是ApplicationContext,Spring 預設以singleton的方式初始化bean.
對於BeanFactory的初始化,通常用下面的程式碼:
1 ClassPathResource resource = new ClassPathResource("beans.xml"); 2 BeanFactory factory = new XmlBeanFactory(resource);
對於ApplicationContext的初始化,通常在web.xml中配置:
1 <context-param> 2 <param-name>contextConfigLocation</param-name> 3 <param-value> 4 classpath:conf/Appcontext.xml 5 </param-value> 6 </context-param> 7 <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
或者
ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"applicationContext.xml", "applicationContext-part2.xml"});
相關推薦
spring例項化bean的幾種方式
1.使用類構造器實現例項化(bean的自身構造器) 1 <bean id = "orderService" class="cn.itcast.OrderServiceBean"/> 2.使用靜態工廠方法實現例項化 1 <bean id =
Spring例項化bean的三種方式
概述 學習一下Spring IOC bean的三種例項化方式。 構造方法 靜態工廠方法 例項工廠方法 預設構造方法例項化bean 最常用的初始化bean方式 public class Person { private String name; pr
04--Spring例項化Bean的三種方式
上一小節已經新建了Gradle模組用來測試(如果沒有也沒關係,不影響接下來的分析,可以直接在Spring的spring-beans模組下測試即可)。接下來回顧一下Spring中的一些知識點,以便於更好的的分析原始碼,本小節分析一下Spring例項化bean的三種
Spring-- Ioc 容器Bean例項化的幾種場景
Bean例項化的幾種場景 1、BeanDefinitionRegistryPostProcessor例項化:標準BeanFactoryPostProcessor的擴充套件,BeanFactoryPostProcessor的作用是用來進一步定義註冊的BeanDefiniti
Spring例項化Bean的三種方式_例項工廠方法
第一步:Bean3實體 public class Bean3 { } 第二步:工廠 public class Bean3Factory { public Bean3 createBean3(){ return new Bean3();
Spring例項化Bean的三種方式及Bean的型別
1.使用類構造器例項化 [預設的類構造器] 1 <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 2.使用靜
Spring 獲取bean 幾種方式
讀取 獲取 static ava ade beans java ride .html 轉載自: http://www.cnblogs.com/luoluoshidafu/p/5659574.html 1.讀取xml文件的方式,這種在初學入門的時候比較適用 。 A
spring 獲取bean幾種方式
這種方式適合於採用Spring框架的B/S系統,通過ServletContext物件獲取ApplicationContext物件,然後在通過它獲取需要的類例項。 這個類提供了方便的功能,這樣你就不必去記 ServletContext 中屬性的名字。 它的getWebApplicationContext()
Spring獲取bean幾種方式
方法四:繼承自抽象類WebApplicationObjectSupport 說明:類似上面方法,呼叫getWebApplicationContext()獲取WebApplicationContext 方法五:實現介面ApplicationContextAware 說明:實現該介面的setAppl
Bean例項化的三種方式
-------------------siwuxie095 Bean 例項化的三種方式 1、Bean 例項化,即 在 Spring 的核心配置檔案中建立物件 編寫一個普通類(
.NET中JSON的序列化和反序列化的幾種方式
存儲 ati mas int font javascrip AS memory 種類 一、什麽是JSON JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制
在C#中,Json的序列化和反序列化的幾種方式總結(轉載)
在這篇文章中,我們將會學到如何使用C#,來序列化物件成為Json格式的資料,以及如何反序列化Json資料到物件。 什麼是JSON? JSON (JavaScript Object Notation) is a lightweight data-interchange format.
Spring建立物件的幾種方式
* 1)、包掃描+元件標註註解(@Controller/@Service/@Repository/@Component)[自己寫的類] * 2)、@Bean[匯入的第三方包裡面的元件] 參考部落格:Spring註解@Conditional-
Spring啟用profile的幾種方式
1、配置web.xml:通過配置context-param指定ContextLoaderListener初始化用到的引數;如下,可啟用test的profile。 <?xml version="1.0" encoding="UTF-8"?> <web-app vers
Spring的事物有幾種方式?談談spring事物的隔離級別和傳播行為?
宣告式事務 使用spring宣告式事務,spring使用AOP來支援宣告式事務,會根據事務屬性,自動在方法呼叫之前決定是否開啟一個事務,並在方法執行之後決定事務提交或回滾事務。 事務的隔離級別: 資料庫系統提供了4種事務隔離級別,在這4種隔離級別中,Serial
物件序列化的幾種方式的比較
定義一個待傳輸的物件UserVo: Java程式碼 public class UserVo{ private String name; private int age; private long phone; private List<Us
在C#中,Json的序列化和反序列化的幾種方式總結
在這篇文章中,我們將會學到如何使用C#,來序列化物件成為Json格式的資料,以及如何反序列化Json資料到物件。 首先,解釋一下json Json【javascript物件表示方法】,它是一個輕量級的資料交換格式,我們可以很簡單的來讀取和寫它,並且它很容易被計算機轉化和生成,它是完全獨立於語言的。 Jso
c++類例項化的兩種方式
/* * HelloWorld.cpp * * Created on: 2016年7月13日 * Author: zroad */ #include<iostream> #include<cstring> #inc
時間序列--視覺化的幾種方式
一:隨時間變化的線性曲線 除了最常見的,還可以設定分組,比如 from pandas import Series from pandas import DataFrame from pandas import TimeGrouper from matplotlib import pyplot