<?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. Python 常用的标准库以及第三方库有哪些?

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

  2. 完全卸载(删除)mac下自带的php

    /private/etc sudo rm -rf php-fpm.conf.defaultphp.ini php.ini.default /usr/bin sudo rm -rf php php-co ...

  3. git仓库拆分

    例如: # 这就是那个大仓库 big-project $ git clone git@github.com:tom/big-project.git $ cd big-project # 把所有 `co ...

  4. 【转】R语言函数总结

    原博: R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头, ...

  5. laravel.01.一些细节

    0:参考1,参考2,参考3,参考4,参考5 1.读取项目的配置文件内容,比如app.php下的name属性,用config('app.name','default-value'); 2.读取.ENV文 ...

  6. redis在.Net程序中使用

    1.设置访问密码 config 2.连接redis服务器 private static string redisHost = ConfigHelper.GetAppSetting("redi ...

  7. HDU 4921 Map DFS+状态压缩+乘法计数

    算最多十条链,能截取某前缀段,每种方案都可以算出一个权值,每种方案的概率都是总数分之一,问最后能构成的所有可能方案数. 对计数原理不太敏感,知道是DFS先把链求出来,但是想怎么统计方案的时候想了好久, ...

  8. Docker Ubuntu 例子

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  9. mac安装和启动mongodb

    使用使用 brew安装mongodb 可以使用 OSX 的 brew 来安装 mongodb: sudo brew install mongodb 如果要安装支持 TLS/SSL 命令如下: sudo ...

  10. 每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、默认路由、二级路由、路由守卫)

    路由别名   在main.js中的路由中添加name来创建别名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ] ...