javascript
Spring基础:Bean的实例化
Spring基礎:Bean的實例化
Spring可以看作一個大型工廠,用于生產和管理Spring容器中的Bean,如果要使用找個工廠生產和管理Bean,需要開發者將Bean配置到Spring的配置文件中。
在面向對象編程中,如果要使用某個對象,需要實例化該對象。在Spring框架中,若想使用Spring容器中的Bean,也需要實例化Bean。Spring框架實例化Bean有三種方法:1-構造方法實例化,2-靜態工廠實例化,3-動態工廠實例化。其中,最常用的就是構造方法實例化。
構造方法實例化
1-在Eclipse中創建一個名為ch13的Web應用,并導入Spring支持和以來的JAR包。
2-在src目錄下創建instance包,并在該包中創建BeanClass類
3-在創建配置文件applicationContext.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 --> <bean id = "constuctorInstance" class = "instance.BeanClass" /> </beans>4-在src目錄下創建test包,并在該包中創建測試類TestInstance.
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import instance.BeanClass; /*** Spring容器可以調用Bean對應類中的無參數的構造方法來實例化Bean* @author nuist__NJUPT**/ public class TestInstance {public static void main(String[] args) {//初始化Spring容器,加載配置文件ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml") ;//構造方法實例化BeanBeanClass b1 = (BeanClass) appCon.getBean("constuctorInstance") ;System.out.println(b1 + " " + b1.message) ;} }5-測試結果如下
靜態工廠實例化
靜態工廠實例化需要在工廠類中使用靜態方法來創建Bean的實例,在配置Bean時候,class屬性指定靜態工廠類,還需要使用factory-method屬性指定工廠類中的靜態方法
1-在instance包中創建工廠類BeanStaticFactory,g該類中使用一個靜態方法來實例化對象
2-在applicationContext.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 --> <bean id = "constuctorInstance" class = "instance.BeanClass" /> <bean id = "staticFactoryInstance" class = "instance.BeanStaticFactory" factory-method = "createInstance"/> </beans>3-在測試類TestInstance中添加測試代碼
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import instance.BeanClass; /*** Spring容器可以調用Bean對應類中的無參數的構造方法來實例化Bean* @author nuist__NJUPT**/ public class TestInstance {public static void main(String[] args) {//初始化Spring容器,加載配置文件ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml") ;//構造方法實例化BeanBeanClass b1 = (BeanClass) appCon.getBean("constuctorInstance") ;System.out.println(b1 + " " + b1.message) ;//靜態工廠方法實例化BeanBeanClass b2 = (BeanClass) appCon.getBean("staticFactoryInstance") ;System.out.println(b2 + " " + b2.message) ;} }4-測試結果如下
實例工廠實例化
使用實例工廠實例化需要在工廠類中創建一個實例方法來創建Bean的實例,在配置Bean時候,使用factory-bean指定實例工廠,使用factory-method指定實例方法
1-在Instance包中創建工廠類BeanInstanceFatory
2-在applicationContext.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 --> <bean id = "constuctorInstance" class = "instance.BeanClass" /> <bean id = "staticFactoryInstance" class = "instance.BeanStaticFactory" factory-method = "createInstance"/> <bean id = "myFactory" class = "instance.BeanInstanceFactory"/> <bean id = "instanceFactoryInstance" factory-bean = "myFactory" factory-method = "createBeanClassInsatnce"/> </beans>3-在測試類TestInstance中編寫測試代碼
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import instance.BeanClass; /*** Spring容器可以調用Bean對應類中的無參數的構造方法來實例化Bean* @author nuist__NJUPT**/ public class TestInstance {public static void main(String[] args) {//初始化Spring容器,加載配置文件ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml") ;//構造方法實例化BeanBeanClass b1 = (BeanClass) appCon.getBean("constuctorInstance") ;System.out.println(b1 + " " + b1.message) ;//靜態工廠方法實例化BeanBeanClass b2 = (BeanClass) appCon.getBean("staticFactoryInstance") ;System.out.println(b2 + " " + b2.message) ;//實力工廠方法實例化BeanClass b3 = (BeanClass) appCon.getBean("instanceFactoryInstance") ;System.out.println(b3 + " " + b3.message) ;} }4-測試結果如下
總結
以上是生活随笔為你收集整理的Spring基础:Bean的实例化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python常用字符编码
- 下一篇: gradle idea java ssm