一、Spring配置文件注入

package com.zxguan.demo;

public class Person {

    private String name;

    private int age;

    public Person() {
} public Person(String name, int age) {
super();
this.name = name;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}

  1、属性注入:

    1)bean中一定要有无参构造方法

    2)使用配置文件注入时,只检查配置属性对应的setter方法是否都能在bean中找到,而不要求属性

    <bean id="person" class="com.zxguan.demo.Person">
<property name="name">
<value>zhangsan</value>
</property>
<property name="age">
<value>10</value>
</property>
</bean>

  2、接口注入:配置信息与属性注入一致,bean实现的接口的方法中用到注入的属性或对象

    1)bean中一定要有无参构造方法

  3、构造方法注入:

    1)将 类型(type),索引(index)相结合使用,使配置指定的顺序、类型与构造参数顺序、类型一致;

  <bean id="person" class="com.zxguan.demo.Person">
<constructor-arg type="java.lang.String" index="0">
<value>zhangsan</value>
</constructor-arg>
<constructor-arg type="int" index="1">
<value>10</value>
</constructor-arg>
</bean>

    2)反射注入,配置顺序与构造方法参数顺序必须一致

    <bean id="person" class="com.zxguan.demo.Person">
<constructor-arg>
<value>zhangsan</value>
</constructor-arg>
<constructor-arg>
<value>10</value>
</constructor-arg>
</bean>

  注意:

  1、spring使用配置文件注入时,setter方法是必须的(不需要getter,spring只做注入)

  2、变量的前两个字幕要不全部大写,要不全部小写,否则注入出错

  3、构造方法注入,如果有两个对象相互引用,那么会造成循环依赖。解决方法:改为属性注入

二、注入参数

  1、字面量:可用字符串表示的值,通过<value>标签进行注入。默认情况下,基本数据类型及其封装类、String类都可采用字面量注入。

  2、XML中共有5个特殊符号:<、>、&、“、',包含这5个特殊字符的用<![CDATA[xxx]]>包起来,或者用转义字符特换

  3、<NULL>单独的一个标签,不与<VALUE>混用。

  特别注意:

  一般情况下,XML解析器会忽略元素前后的空格,而Spring却不会忽略。

最新文章

  1. Java第六次作业修改版
  2. centos安装与卸载postgresql
  3. Atitit.gui api自动化调用技术原理与实践
  4. **PHP中替换换行符
  5. 如何增加swap 大小
  6. SynchronousQueue
  7. linux aio
  8. C# Windows服务安装出现System.Security.SecurityException异常解决办法
  9. SQL点滴34—SQL中的大小写
  10. 真实场景的双目立体匹配(stereo matching)以及虚拟视点合成(virtual view synthsis)示例
  11. 分类问题的几个评价指标(Precision、Recall、F1-Score、Micro-F1、Macro-F1
  12. 5、Qt Project之键盘数据监控
  13. Intellij IDEA配置PHP开发环境
  14. Java基础学习(一)---Java初识
  15. Java基础—异常
  16. Java编程的逻辑 (70) - 原子变量和CAS
  17. 普通Region中动态设置poplist的值跟着当前区域的某些值动态变化
  18. python -- peewee处理数据库连接
  19. 【洛谷 P3299】 [SDOI2013]保护出题人 (凸包,三分,斜率优化)
  20. 项目部署后,替换.class文件不生效

热门文章

  1. QString介绍
  2. mysql 首次安装后 简单操作与语句 新手入门
  3. Android局部更新(RecyclerView+ DiffUtil)
  4. [hibernate]save()与persist()区别
  5. 从源码学习使用 node-delegates
  6. ActionScript的for循环
  7. HTML基础知识自学教程
  8. 单点登录之CAS原理和实现(转载)
  9. 【C/C++开发】【VS开发】win32位与x64位下各类型长度对比
  10. linux文件权限更改命令chmod及数字权限实践总结