zoukankan      html  css  js  c++  java
  • Spring的核心之IoC容器创建对象

    Spring的Ioc容器,是Spring的核心内容:

      作用:对象的创建和处理对象的依赖关系。

    Spring容器创建对象有以下几种方式:

      1:调用无参数的构造器

     <!-- 默认无参的构造器 -->
    <bean id="user1" class="com.bie.po.User"></bean>  

      2:调用有参数构造器

     <!-- 带参的构造器 ,基本数据类型直接写如int,引用数据类型写全名如java.lang.String-->
     <bean id="user" class="com.bie.po.User">
             <constructor-arg value="100" index="0" type="int"></constructor-arg>
             <constructor-arg value="张三" index="1" type="java.lang.String"></constructor-arg>
    </bean>

        在Spring中通过配置文件使用ref元素引用其他JavaBean的实例对象

    <!-- 定义一个字符串,值是'张三';String str=new String("张三"); -->
    <bean id="str" class="java.lang.String">
          <constructor-arg value="张三"></constructor-arg>     
    </bean>
         
    <!-- 带参的构造器 ,基本数据类型直接写如int,引用数据类型写全名如java.lang.String-->
    <bean id="user" class="com.bie.po.User">
         <constructor-arg value="100" index="0" type="int"></constructor-arg>
         <constructor-arg ref="str" index="1" type="java.lang.String"></constructor-arg>   
    </bean>

    完整的applicationContext.xml(bean.xml)配置文件如下所示:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:p="http://www.springframework.org/schema/p"
     5     xmlns:context="http://www.springframework.org/schema/context"
     6     xsi:schemaLocation="
     7         http://www.springframework.org/schema/beans
     8         http://www.springframework.org/schema/beans/spring-beans.xsd
     9         http://www.springframework.org/schema/context
    10         http://www.springframework.org/schema/context/spring-context.xsd">
    11      
    12      
    13      <!-- IoC容器的配置,要创建的所有的对象都配置在这里 -->
    14      
    15      <!-- 默认无参的构造器 -->
    16      <bean id="user1" class="com.bie.po.User"></bean>
    17      
    18      <!-- 定义一个字符串,值是'张三';String str=new String("张三"); -->
    19      <bean id="str" class="java.lang.String">
    20         <constructor-arg value="张三"></constructor-arg>     
    21      </bean>
    22      
    23      <!-- 带参的构造器 ,基本数据类型直接写如int,引用数据类型写全名如java.lang.String-->
    24      <bean id="user" class="com.bie.po.User">
    25          <constructor-arg value="100" index="0" type="int"></constructor-arg>
    26          <!-- <constructor-arg value="张三" index="1" type="java.lang.String"></constructor-arg>
    27           -->
    28          <constructor-arg ref="str" index="1" type="java.lang.String"></constructor-arg>
    29          
    30      </bean>
    31 </beans>     

    3:工厂类创建对象

        3.1:工厂类,静态方法创建对象

     <!-- 3:工厂类创建对象
             工厂类,实例方法,必须先创建工厂
             再创建user对象,用factory的实例方法    
    -->
    <bean id="factory" class="com.bie.po.ObjectFactory"></bean>
    <bean id="user3" factory-bean="factory" factory-method="getInstance"></bean>   

        3.2:工厂类,非静态方法创建对象

    <!--
             4:工厂类,静态方法,静态方法不需要实例化对象,
                class指定的就是工厂类型
                factory-method一定是工厂里面的静态方法    
    -->

    <bean id="user" class="com.bie.po.ObjectFactory" factory-method="getStaticInstance"></bean>

    完整的applicationContext.xml(bean.xml)配置文件如下所示:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:p="http://www.springframework.org/schema/p"
     5     xmlns:context="http://www.springframework.org/schema/context"
     6     xsi:schemaLocation="
     7         http://www.springframework.org/schema/beans
     8         http://www.springframework.org/schema/beans/spring-beans.xsd
     9         http://www.springframework.org/schema/context
    10         http://www.springframework.org/schema/context/spring-context.xsd">
    11      
    12      
    13      <!-- IoC容器的配置,要创建的所有的对象都配置在这里 -->
    14      
    15      <!-- 默认无参的构造器 -->
    16      <bean id="user1" class="com.bie.po.User"></bean>
    17      
    18      <!-- 定义一个字符串,值是'张三';String str=new String("张三"); -->
    19      <bean id="str" class="java.lang.String">
    20         <constructor-arg value="张三"></constructor-arg>     
    21      </bean>
    22      
    23      <!-- 带参的构造器 ,基本数据类型直接写如int,引用数据类型写全名如java.lang.String-->
    24      <bean id="user2" class="com.bie.po.User">
    25          <constructor-arg value="100" index="0" type="int"></constructor-arg>
    26          <!-- <constructor-arg value="张三" index="1" type="java.lang.String"></constructor-arg>
    27           -->
    28          <constructor-arg ref="str" index="1" type="java.lang.String"></constructor-arg>
    29      </bean>
    30      
    31      <!-- 3:工厂类创建对象 
    32          工厂类,实例方法,必须先创建工厂
    33          再创建user对象,用factory的实例方法    
    34      -->
    35      <bean id="factory" class="com.bie.po.ObjectFactory"></bean>
    36      <bean id="user3" factory-bean="factory" factory-method="getInstance"></bean>    
    37      
    38      <!-- 4:工厂类,静态方法,静态方法不需要实例化对象,所以直接引用工厂类的class和方法 -->
    39      <bean id="user" class="com.bie.po.ObjectFactory" factory-method="getStaticInstance"></bean>
    40 </beans>     

     掌握Spring核心IoC容器,由简到繁,faghting~~~

  • 相关阅读:
    Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)
    SQL Azure (15) SQL Azure 新的规格
    Azure China (5) 管理Azure China Powershell
    Azure China (4) 管理Azure China Storage Account
    Azure China (3) 使用Visual Studio 2013证书发布Cloud Service至Azure China
    Azure China (2) Azure China管理界面初探
    Azure China (1) Azure公有云落地中国
    SQL Azure (14) 将云端SQL Azure中的数据库备份到本地SQL Server
    [New Portal]Windows Azure Virtual Machine (23) 使用Storage Space,提高Virtual Machine磁盘的IOPS
    Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
  • 原文地址:https://www.cnblogs.com/biehongli/p/6539450.html
Copyright © 2011-2022 走看看