<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!--  <context:component-scan base-package="com.chinasofti.bean"></context:component-scan>  -->  

    <!-- 构造器方式 -->
    <bean id="dog" class="day1.Dog">
        <!-- 有参的类: constructor-arg 标签代表有参构造,index对应第几个参数,value是值 -->
        <constructor-arg index="0" value="杀魔爷"></constructor-arg>
        <constructor-arg index="1" value="888"></constructor-arg>

    </bean>

    <!-- 静态工厂方式  -->
    <bean id="product" class="beans.staticFactorys" factory-method="getProduct"></bean>

    <!-- 非公共类 -->
    <bean id="div" class="beans.Div"></bean>

    <!-- 普通类的方法 返回的对象 -->
    <bean id="factory" class="beans.Factory" ></bean>
    <bean id="product2" factory-bean="factory" factory-method="getProduct"></bean>

        <!-- 导入其他的配置文件-->
         <import resource="ac.xml"/>
<!-- 默认情况下每个bean 的scope的值是 singleton 即 单例模式,该模式下容器只存在一个bean
        在单例模式下属性 lazy-init 可以决定bean的创建事件,默认:false 时随着IOC 容器的创建而创建
            (ApplicationContext ac=new ClassPathXmlApplicationContext("ac.xml");)
        该值为true 时 ,则第一场获取对象 (getBean()) 是创建对象

        scope 的值是 prototype 时 即 多例模式  其 lazy-init 的值就只能是 true 

        init-method: 初始化方法
        destory-method: 销毁方法
     -->
    <bean id="dog" class="day1.Dog" scope="singleton" init-method="setName" destroy-method="destory"/>

    <!-- property 标签 可以给初始化成员变量  -->

        <!-- 1.Boy boy=new Boy();
             2.boy.setName(小明)
               boy.setDog(new Dog());
         -->
    <bean id="boy" class="beans.Boy" >

        <!-- 基本类型注入 -->
        <property name="name" value="小明"></property>
        <!-- Spring 组件类型注入 ref  -->
        <!-- 依赖参数的内部写法,外部的其他键无法访问 -->
        <property name="dog" >
         <bean id="dog" class="day1.Dog">
            <property name="name" value="吃鸡"></property>
            <property name="age" value="55"></property>
        </bean>
         </property>

    </bean>

    <!-- 依赖参数的外部注入写法 -->
        <bean id="boy1" class="beans.Boy">
            <property name="name" value="小明"></property>
            <property name="dog" ref="dog"></property>
        </bean>
    <bean id="dog" class="day1.Dog"></bean>
</beans>
        <!-- 集合 类型注入:
            list  set   Map
                list 注入:一个value 标签代表一个元素
         -->

        <bean id="setList" class="beans.setList">
            <property name="lists">
                <list>
                <value type="java.lang.String">天下第一</value>
                <value type="java.lang.String">天下第二</value>
                </list>
            </property>

            <property name="dlist">
            <!-- 组件注入集合的方式 -->
            <!--      <list>
                    <ref bean="date"></ref>
                    <ref bean="date"></ref>
                    <null></null>
                </list>
                -->
                <set>
                    <ref bean="date"></ref>
                    <null></null>
                    <ref bean="date"></ref>
                </set>
            </property>

        </bean>

    <bean id="date" class="java.util.Date"></bean>    

        <!-- 注入map 集合 -->
        <bean id="setMap" class="beans.setMap">
            <property name="map">
                <map>
                <entry key-ref="date" value-ref="setList"></entry> <!-- key 和 value 是其他bean时 -->
                 <!-- key 和 value 是字符串或者基本类型时 -->
                <entry key="aa" value="vv"></entry>
                </map>
            </property>
        </bean>

        <bean id="user" class="beans.User">
            <property name="ps">
                <props>
                    <prop key="userName">username</prop>
                    <prop key="passWord">password</prop>
                </props>
            </property>
        </bean>

</beans> 

Spring的配置文件说明的更多相关文章

  1. Spring的配置文件

    Web.xml将会配置Spring的配置文件位置: <servlet>        <servlet-name>x</servlet-name>        & ...

  2. java Spring使用配置文件读取jdbc.properties

    Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer" ...

  3. 使用JDom解析XML文档模拟Spring的配置文件解析

    在J2EE项目中可能会涉及到一些框架的使用,最近接触到了SSH,拿Spring来说配置文件的使用是相当重要的,Spring的配置文件是一个xml文件,Spring是如何读取到配置文件并进行依赖注入的呢 ...

  4. Spring Boot 配置文件详解

    Spring Boot配置文件详解 Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值.相对于prop ...

  5. Spring boot 配置文件详解 (properties 和yml )

    从其他框架来看 我们都有自己的配置文件, hibernate有hbm,mybatis 有properties, 同样, Spring boot 也有全局配置文件. Springboot使用一个全局的配 ...

  6. Springboot 系列(二)Spring Boot 配置文件

    注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 不管是通过官方提供的方式获取 Spring ...

  7. java web路径和spring读取配置文件

    此篇博客缘起:部署java web系统到阿里云服务器(ubuntu14.04)的时候,有以下两个问题 找不到自定义的property配置文件 上传图片的时候找不到路径 开发的时候是在windows上的 ...

  8. 史上最全的Spring Boot配置文件详解

    Spring Boot在工作中是用到的越来越广泛了,简单方便,有了它,效率提高不知道多少倍.Spring Boot配置文件对Spring Boot来说就是入门和基础,经常会用到,所以写下做个总结以便日 ...

  9. spring boot 配置文件

    spring boot使用一个全局配置文件:主要是以下两种类型 application.properties  :例:server.port=9998 application.yml(YAML)  : ...

  10. Spring之配置文件bean作用域的详细介绍

    Spring的配置文件applicationContext.xml中bean作用域的详细介绍: 1:对象的创建:单例和多例        scope="singleton",默认值 ...

随机推荐

  1. Vuex - state , getters , mutations , actions , modules 的使用

      1, 安装   vue add vuex 2, 安装完之后会自动生成store文件夹,并在main.js中自动引用 store/index.js 3,在store文件夹下的index.js中定义 ...

  2. Windows系统查看端口被那些进程使用

    Windows系统查看端口被那些进程使用注:当前Windows为虚拟机环境1. 打开命令提示符:开始-运行-cmd2. 列出使用端口的PID: netstat -abno -a 显示所有连接和侦听端口 ...

  3. linux 域名

    Linux 安装好后,其默认的主机名是 localhost.   1.修改 /etc/sysconfig/network  配置文件 vi  /etc/sysconfig/network 修改HOST ...

  4. [Java] Eclipse 设置相同变量背景色高亮显示

    在Eclipse中,鼠标选中或者光标移动到java类的变量名时,相同变量会被标识显示(设置背景色高亮), 并且侧边滚动条会标出变量的位置, 查找变量十分方便. 1.相同变量标识高亮显示:Window ...

  5. Java笔记--反射机制

    1.Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法. 2.Java反射机制提供 ...

  6. Python 常用的标准库以及第三方库有哪些?

    作者:史豹链接:https://www.zhihu.com/question/20501628/answer/223340838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. 动态弹出框,iframe的name包含一串随机数

    由于name是随机的,要定位name比较困难,此处由于iframe的标签是唯一的,所以可以用tag_name定位 framename=driver.find_element_by_tag_name(& ...

  8. GNS3 模拟icmp禁止不可达

    R1 : conf t int f0/0 no shutdown ip add 192.168.1.1 255.255.255.0 no ip routing end R2 f0/0: conf t ...

  9. 使用 Exchange 命令行管理程序查看动态通讯组的成员

    本示例返回名为 "全职员工" 的动态通讯组的成员列表. 第一个命令将动态通讯组对象存储在变量$FTE中. 第二个命令使用 Get-Recipient cmdlet 列出与为动态通讯 ...

  10. JDK源码阅读-------自学笔记(一)(java.lang.Object重写toString源码)

    一.前景提要 Object类中定义有public String toString()方法,其返回值是 String 类型. 二.默认返回组成 类名+@+16进制的hashcode,当使用打印方法打印的 ...