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~~~

  • 相关阅读:
    上传图片预览--图片上传后显示在某个模块中
    商品规格选择--添加背景色,并显示已选规格
    jquery选项卡
    swiper轮播图--兼容IE8
    点击图片查看大图--以弹框的形式显示在屏幕正中间
    百度地图API首页 -- 鼠标经过:类似翻页效果和 类似锚点链接效果
    别踩白块
    Jersey(1.19.1)
    Table of Contents
    Jersey(1.19.1)
  • 原文地址:https://www.cnblogs.com/biehongli/p/6539450.html
Copyright © 2011-2022 走看看