通常有3種方式,第一種用於我們自定義的類,後面兩種是為了應用第三方jar包中的類,根據jar中的建立物件的方式進行選擇
建立bean的型別
<
bean
scope
="prototype"
id="accountservice4"
class
="com.village.service.impl.accountserviceimpl"
>
bean
>
測試類
publicstatic
void
main(string args)
}
第一種:通過預設建構函式建立
此種方式通常用於我們自己寫的類,在spring中配置。<
bean
id="accountservice"
class
="com.village.service.impl.accountserviceimpl"
>
bean
>
第二種:通過工廠物件的方法來建立(靜態)
class屬性: 指定的是工廠的全限定類名factory-method屬性:指定的是工廠中用於建立物件的靜態方法
<
bean
id="accountservice2"
class
="com.village.factory.staticfactory"
factory-method
="createbean"
>
bean
>
此種方法通常用於不是我們自己寫的類,而是存在於jar包中已經寫好的類。(它都是.class檔案),比如mybatis中的sqlsessionfactory建立對像,不允許直接new物件
第三種:通過工廠物件的方法來建立(非靜態)
factory-bean屬性:指定的是工廠bean的id.factory-method屬性:指定的是工廠中用於建立物件的非靜態方法
<
bean
id="instancefactory"
class
="com.village.factory.instancefactory"
>
bean
>
<
bean
id="accountservice3"
factory-bean
="instancefactory"
factory-method
="createbean"
>
bean
>
此種方式通常用於不是我們自己寫的類。
完整測試類
packagecom.village.web;
import
com.itheima.service.accountservice;
import
import
public
class
createbeanclient
private
static
void
demo3()
private
static
void
demo2()
private
static
void
demo1()
}
packagecom.village.factory;
import
com.itheima.service.impl.accountserviceimpl;
public
class
staticfactory
}
packagecom.village.factory;
import
com.itheima.service.impl.accountserviceimpl;
public
class
instancefactory
}
spring IOC建立Bean流程
org.springframework.beans.factory.support.abstractautowirecapablebeanfactory docreatebean 1.物件例項化,內部還有一些出來構造器選擇,構造器引數解析的處理,處理完後會進行快取到beandefination中 2...
spring ioc容器中建立bean的方法
1.set方法注入 會呼叫car的set方法,怎樣確定對應哪個屬性,則由set方法後的名字決定 如 setbrand 就對應上述bean物件的brand屬性。2.構造器方式注入 會呼叫car類的構造器來定義bean物件屬性,要注意要定義空的構造器 如 後定義的構造器,獲取的時候先獲取 有除構造方法以...
SpringIOC核心容器bean
spring ioc是為了將類解耦 建立乙個類 public class helloworld public helloworld public void hello 通過xml檔案配置bean物件 xmlns xmlns xsi xsi schemalocation spring beans.xs...