美文网首页
spring-ioc xml 方式

spring-ioc xml 方式

作者: lixinxin | 来源:发表于2018-11-03 10:03 被阅读7次

spring

1.spring-iop

  • XMl配置方式 工厂+反射+配置文件

使用方式



ApplicationContext applicationContext = new 

//ClassPathXmlApplicationContext 获取文件路基下的配置文件
//FileSystemXmlApplicationContext 加载文件系统下的配置文件

ClassPathXmlApplicationContext("applicationContext.xml");
Car car = (Car) applicationContext.getBean("car");
        
System.out.println(car.toString());
  • xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans 
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
    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">

    <!-- Spring的入门的配置==================== -->
    <!-- <bean name="user" class="com.lixinxinlove.User" 
    
    </bean> --> 
    
    <!--  scope="prototype" 多利        singleton 单利     默认单利           多利 不销毁   -->
    <!-- <bean name="user" class="com.lixinxinlove.User" 
        scope="singleton"          
        init-method="setup"
        destroy-method="destroy" > 
        <property name="name" value="李东"/>      
        <property name="password" value="123456789"/>
    </bean>  -->
    
    
    <!-- set 注入 -->
    <!-- <bean name="user" class="com.lixinxinlove.User" 
        scope="singleton"          
        init-method="setup"
        destroy-method="destroy" > 
        <property name="name" value="李东"/>      
        <property name="password" value="123456789"/>
    </bean>  -->
    

    
    <bean name="car1" class="com.lixinxinlove.Car" > 
        <property name="name" value="QQ"/>      
        <property name="price" value="11111"/>
    </bean>
    
    
    <!-- 构造 注入 -->
    <!-- <bean name="user" class="com.lixinxinlove.User" > 
        
        <constructor-arg   name="name" value="lixinxin"/>
        <constructor-arg   name="password" value="123456789"/>
        
    </bean>  -->
    
    <!--    ref 引用其他对象类型  ref  和 p 空间冲突 -->
    <!-- <bean name="user" class="com.lixinxinlove.User" >
        <property name="name" value="李东"/>      
        <property name="password" value="123456789"/>
        <property name="car" ref="car1"/>
    </bean>  -->
    
    <!-- <bean name="user" class="com.lixinxinlove.User"
        p:name="lixinxin"
        p:password="11111111"
        p:car-ref="car1"
        
           >
    
    </bean>  -->
    
    <!--  SpEl 方式注入-->
    <bean name="car" class="com.lixinxinlove.Car" > 
        <property name="name" value="#{'宝马'}"/>     
        <property name="price" value="#{100000}"/>
    </bean>
    
    <bean name="user" class="com.lixinxinlove.User">
        <property name="name" value="#{'lixinxin'}"/>       
        <property name="password" value="#{'111111'}"/>
        <property name="car" value="#{car}"/>
        
    
    </bean> 
    
</beans>

1.5.2.2Bean的生命周期的配置(了解)

  • init-method :Bean被初始化的时候执行的方法
  • destroy-method :Bean被销毁的时候执行的方法(Bean是单例创建,工厂关闭)

Bean的作用范围的配置(重点)

scope           :Bean的作用范围
singleton       :默认的,Spring会采用单例模式创建这个对象。
prototype   :多例模式。(Struts2和Spring整合一定会用到)
request     :应用在web项目中,Spring创建这个类以后,将这个类存入到request范围中。
session     :应用在web项目中,Spring创建这个类以后,将这个类存入到session范围中。
globalsession   :应用在web项目中,必须在porlet环境下使用。但是如果没有这种环境,相对于session。

Spring的Bean的实例化方式

  • 实例工厂实例化的方式

  • 构造方法的方式的属性注入

  • Set方法的方式的属性注入

  • P名称空间的属性注入(Spring2.5以后)
    普通属性 p:属性名=”值”
    对象属性 p:属性名-ref=”值”

  • SpEL的属性注入(Spring3.0以后)

Spring的分模块开发的配置

  • 在加载配置文件的时候,加载多个

ApplicationContext applicationContext = new
ClassPathXmlApplicationContext
("applicationContext.xml","applicationContext2.xml");

  • 在一个配置文件中引入多个配置文件

<impotr resource="applicationContext2.xml"/>

相关文章

网友评论

      本文标题:spring-ioc xml 方式

      本文链接:https://www.haomeiwen.com/subject/yvfkxqtx.html