//创建容器,索要对象,

package cn.lijun.Test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.lijun.domain.Qiang;
import cn.lijun.domain.User;

public class TestDemo {
//    @Test
//    
//    public void fun1(){
//        //1创建容器对象
//        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//       //2 向容器要对象
//        User bean = (User)ac.getBean("user");
//        System.out.println(bean);
//    
//    }
//    @Test
//    public void fun2(){
//        //1创建容器对象
//        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//       //2 向容器要对象
//        User bean = (User)ac.getBean("user1");
//        System.out.println(bean);
//    
//    }
//    @Test
//    public void fun3(){
//        //1创建容器对象
//        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//       //2 向容器要对象
//        User bean = (User)ac.getBean("user2");
//        System.out.println(bean);
//    
//    }
//    @Test
//    public void fun3(){
//        //1创建容器对象
//        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//       //2 向容器要对象
//        User bean = (User)ac.getBean("user3");
//        System.out.println(bean);
//    
//    }
    @Test
    public void fun4(){
        //1创建容器对象
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
       //2 向容器要对象
        Qiang bean = (Qiang)ac.getBean("qi");
        System.out.println(bean);
    
    }
}

//存储属性的集中方法

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 
  http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
   <!-- 1 set注入方式 -->
    <bean name="user" class="cn.lijun.domain.User">
        <property name="name" value="qiang"></property>
        <property name="age" value="18"></property>
        <!-- 为引用类型注入 为car 注入 属性 -->
        <property name="car" ref="car"></property>
        
        
    </bean>
    <!-- 将car对象配置到容器中 -->
    <bean name="car" class="cn.lijun.domain.Car">
        <property name="name" value="兰博基尼"></property>
        <property name="color" value="红色"></property>
    </bean>
    <!-- 2 构造函数注入 -->
    <bean name="user1" class="cn.lijun.domain.User">
        <constructor-arg name="name" value="sdfjkah"></constructor-arg>
        <constructor-arg name="age" type="java.lang.Integer" value="99"></constructor-arg>
        <constructor-arg name="car" ref="car" ></constructor-arg>
    </bean>
    <!-- p名称空间注入 走set方法 -->
    <bean name="user2" class="cn.lijun.domain.User" p:name="ashjkhkasf" p:age="999" p:car-ref="car">
    </bean>
    <!-- spel注入  spring Exception Language spring 表达式语言 -->
    <bean name="user3" class="cn.lijun.domain.User">
        <property name="name" value="#{user.name}"></property>
        <property name="age" value="#{user2.age}"></property>
        <property name="car" ref="car"></property>
    </bean>
    <!-- 复杂类型注入 -->
    <bean name="qi" class="cn.lijun.domain.Qiang">
      <!-- 一个数组中 只准备注入一个值  直接用value/ref -->
      <property name="arr">
          <array>
              <value>qiang</value>
              <value>ashj</value>
              <ref bean="user2"></ref>
          </array>
      </property>
      <property name="map">
         <map>
            <entry key="url" value="jdbc:mysql:///crm"></entry>
            <entry key="user" value-ref="user3"></entry>
         </map>
      </property>
     <property name="list">
         <list>
            <value>rose</value>
            <value>asfhjksjkdfjhjasdfdjk</value>
            <ref bean="user2"></ref>
         </list>
      </property>
       <property name="prop">
         <props>
             <prop key="drivarClass">com.jdbc.nysql.Driver</prop>
           <prop key="userName">root</prop>
           <prop key="password">root</prop>
         </props>

Spring 添加属性集中常见方法的更多相关文章

  1. JS函数可以再添加属性(包括方法)

    1 前言 JS函数可以再添加属性(包括方法),这个有点有趣,记录一下. 2 代码 <!DOCTYPE html> <html> <head> <title&g ...

  2. UIPickerView常见属性、常见方法(包括代理方法和数据源方法)的一些说明

    一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id< ...

  3. 275 原型与原型链:显式原型prototype ,隐式原型__proto__,隐式原型链,原型链_属性问题,给原型对象添加属性/方法

    1.所有函数都有一个特别的属性 prototype : 显式原型属性 [普通构造函数的实例对象没有prototype 属性,构造函数有__proto__属性,原型对象有__proto__属性 ] 2. ...

  4. 我的Python学习笔记(四):动态添加属性和方法

    一.动态语言与静态语言 1.1 动态语言 在运行时代码可以根据某些条件改变自身结构 可以在运行时引进新的函数.对象.甚至代码,可以删除已有的函数等其他结构上的变化 常见的动态语言:Object-C.C ...

  5. 属性添加get和set方法

    出错信息: Struts Problem Report Struts has detected an unhandled exception: Messages: File: com/myHibern ...

  6. spring mvc: 属性方法名称解析器(多动作控制器)MultiActionController/ControllerClassNameHandlerMapping/PropertiesMethodNameResolver

    spring mvc: 属性方法名称解析器(多动作控制器) 加入控制器是StudentContrller.java,里面有3个方法 index,add,remove 那么访问地址是: http://l ...

  7. ios动态添加属性的几种方法

    http://blog.csdn.net/shengyumojian/article/details/44919695 在ios运行过程中,有几种方式能够动态的添加属性. 1-通过runtime动态关 ...

  8. prototype为对象添加属性和方法

    可以通过prototype来为已经定义好的的"类"添加属性和方法.这里来了解一下prototype的基础知识.prototype是"构造函数"的属性,不是实例的 ...

  9. javascript面向对象(给对象添加属性和方法的方式)

    1.在定义对象时,直接把属性和方法添加 <script type="text/JavaScript"> //给对象直接在定义时添加属性和方法         var g ...

随机推荐

  1. Verilog HDL中的运算符关系

    1,位运算符 按位运算的运算符是位运算符,原来的操作数有几位,结果就有几位,若两个操作数位数不同,则位数短的操作数左端会自动补0. (1),按位取反:~ (2),按位与:& (3),按位或:| ...

  2. 阿里巴巴数据源Druid在tomcat中的配置

    这里只说需要的配置文件,不讲具体的项目,仅作为备忘. pom.xml文件添加 <!-- druid --> <dependency> <groupId>com.al ...

  3. 使用IDE之webstorm

    最近打算试试用webstorm,今天从vscode换成了webstorm. 官方下载webstorm 1.下载之后安装,我全部选择默认,因为webstorm是付费ide,到启动面板时,选择激活选项. ...

  4. 会话保持及Form表单

    1,cookie技术视图views里面:def index(request): #获取请求中的cookie num = request.COOKIES.get('num') if num: num = ...

  5. linux怎么样显示命令历史后又显示命令的输入时间

    linux的bash内部命令history就可以显示命令行的命令历史,默认环境执行 history命令后,通常只会显示已执行命令的序号和命令本身.如果想要查看命令历史的时间戳,那么可以执行: 临时显示 ...

  6. C++中宽字符类型(wchar_t)的编码

    转载自: http://www.ituring.com.cn/article/111027 问题的起因是和一个朋友讨论不同编码的转换问题,说到了wchar_t的类型,朋友的看法是,wchar_t的编码 ...

  7. 剑指offer题目解答合集(C++版)

    数组中重复的数字 二维数组中查找 字符串 替换空格 二叉树的编码和解码 从尾到头打印链表 重建二叉树 二叉树的下一个节点 2个栈实现队列 斐波那契数列 旋转数字 矩阵中的路径 机器人的运动范围 剪绳子 ...

  8. 七、XHTML介绍

    XHTML简介 1.什么是XHTML? XHTML指的是可扩展超文本标记语言 XHTML与HTML4.01几乎是相同的 XHTML是更严格更纯净的HTML版本 XHTML得到所有主流浏览器的支持 2. ...

  9. 爬虫基础线程进程学习-Scrapy

    性能相关 学习参考:http://www.cnblogs.com/wupeiqi/articles/6229292.html 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时 ...

  10. python——元组和字典类型简明理解

    元组类型: 元祖创建: 不需要括号可以但是一个元素就当成了字符串类型了 >>> tup1="a"; >>> type(tup1) <cla ...