SpringBean中怎么實現(xiàn)實例化,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)榆林免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
Bean的實例化
1.構造器實例化:Spring容器通過Bean對應類中默認的無參構造方法來實例化Bean
package com.itheima.instance.constructor; public class Bean1 { }
<?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="bean1" class="com.itheima.instance.constructor.Bean1"></bean></beans>
在beans1.xml文件中,定義了一個id為bean1的Bean,并通過class屬性指定其對應的實現(xiàn)類Bean1
package com.itheima.instance.constructor; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; public class InstanceTest1 { public static void main(String[] args) { //定義配置文件路徑 String xmlPath = "com/itheima/instance/constructor/beans1.xml"; //ApplicationContext在加載配置文件時,對Bean進行實例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); Bean1 bean = (Bean1) applicationContext.getBean("bean1"); System.out.println(bean); }}
在InstanceTest1類中,首先定義了配置文件的路徑,然后Spring容器ApplicationContext會加載配置文件。在加載時,Spring容器會通過id為bean1的實現(xiàn)類Bean1中默認的無參構造方法對Bean進行實例化。
2. 靜態(tài)工廠方法實例化
package com.itheima.instance.static_factory; public class Bean2 { }
package com.itheima.instance.static_factory; public class MyBean2Factory { //使用自己的方法創(chuàng)建Bean2實例 public static Bean2 createBean(){ return new Bean2(); }}
<?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="bean2" class="com.itheima.instance.static_factory.MyBean2Factory" factory-method="createBean"></bean></beans>
定義id為bean2的Bean,通過class屬性指定其對應的工廠實現(xiàn)類(MyBean2Factory.java),需要增加factory-method屬性來告訴Spring容器其方法名稱為createBean。
package com.itheima.instance.static_factory; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; public class InstanceTest2 { public static void main(String[] args) { //定義配置文件路徑 String xmlPath = "com/itheima/instance/static_factory/beans2.xml"; //ApplicationContext在加載配置文件時,對Bean進行實例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); System.out.println(applicationContext.getBean("bean2")); }}
3.實例工廠方式實例化
package com.itheima.instance.factory; public class Bean3 { }
package com.itheima.instance.factory; public class MyBean3Factory { public MyBean3Factory(){ System.out.println("bean3工廠實例化中"); } //創(chuàng)建Bean3實例的方法 public Bean3 createBean(){ return new Bean3(); }}
<?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="myBean3Factory" class="com.itheima.instance.factory.MyBean3Factory"></bean><!-- 使用 factory-bean屬性指向配置的實例工廠 使用factory-method屬性確定使用工廠中的哪個方法 --> <bean id="bean3" factory-bean="myBean3Factory" factory-method="createBean"></bean></beans>
首先配置了一個工廠Bean,然后配置了需要實例化的Bean。在id為bean3的Bean中,使用factory-bean屬性指向配置的實例工廠,使用factory-method屬性來確定使用工廠中的createBean()方法
package com.itheima.instance.factory; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; public class InstanceTest3 { public static void main(String[] args) { //指定配置文件路徑 String xmlPath = "com/itheima/instance/factory/beans3.xml"; //ApplicationContext加載配置文件時,對Bean進行實例化 @SuppressWarnings("resource") ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); System.out.println(applicationContext.getBean("bean3")); }}
看完上述內(nèi)容,你們掌握SpringBean中怎么實現(xiàn)實例化的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享題目:SpringBean中怎么實現(xiàn)實例化
新聞來源:http://www.rwnh.cn/article30/peogso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站設計公司、定制網(wǎng)站、關鍵詞優(yōu)化、網(wǎng)站建設、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)