当前位置 : 主页 > 网络编程 > 其它编程 >

SpringBean属性详解

来源:互联网 收集:自由互联 发布时间:2023-07-02
前言对于XML文件的配置里面有很多要注意的地方这里自由互联小编详解一下标签中的相关属性配置因为自由互联小编真的是踩了很多坑这里就想分 前言对于XML文件的配置里面有很多要注
前言对于XML文件的配置里面有很多要注意的地方这里自由互联小编详解一下标签中的相关属性配置因为自由互联小编真的是踩了很多坑这里就想分

前言对于XML文件的配置里面有很多要注意的地方这里自由互联小编详解一下标签中的相关属性配置因为自由互联小编真的是踩了很多坑这里就想分享经验让大家别再像自由互联小编一样踩同样的坑了

好了话不多说直接进入正题了 这里自由互联小编主要提到几个属性

  • ref
  • ![CDATA[]]
  • type

为了方便演示自由互联小编在实体类中实现两个实体类相关联

  • 创建实体类Car
  • private String brand;private int price;private String addr;public Car() {}Overridepublic String toString() {return "Car{" "brand" brand \ ", price" price ", addr" addr \ };}public Car(String brand, int price, String addr) {this.brand brand;this.price price;this.addr addr;}... 省略set() get()方法 (这里自由互联小编就不再给出了)

    • 创建用户类(User ) 关系每个用户都拥有自己的车

    private String user_name;private String user_sex;private int user_age;private Car car;public User_Caffr() {}public User_Caffr(String user_name, String user_sex, int user_age, Car car) {this.user_name user_name;this.user_sex user_sex;this.user_age user_age;this.car car;}... 省略set() get()方法 (这里自由互联小编就不再给出了)

    2.创建spring-xml文件

    2.1讲解" ref "属性的使用

    1.创建一个bean类型指向Car

    2.创建第二个bean类型指向User

    在这里插入代码片

    注意ref属性是直接指向Car_Bean 的 ID 亦可以写成将属性提取出来写也是同样指向Car_Bean的ID


    2.2讲解"type"属性的使用

    1.创建一个包含 int 类型和 Double 类型的实体类成员变量

    public class User_Add {private String name;private String sex;private int age;private Double money;public User_Add(String name, String sex, Double money) {this.name name;this.sex sex;this.money money;}public User_Add(String name, String sex, int age) {this.name name;this.sex sex;this.age age;}... 表示省略setget()方法展出

    注意自由互联小编定义了两种构造器当我们在配置文件配置"constructor-arg"参数的时候系统怎么知道我们到底是配置的哪个构造器呢难道是因为我们给出什么类型的数据他就自己解析什么类型的数据吗所以这里我们要使用type属性来区分不同的参数以至于实现不同的构造器

    3.spring-xml配置文件配置自由互联小编定义了三个bean

  • 普通配置
  • 输出结果 User_Add{name‘ZhangSan’, sex‘Male’, age0, money100.0}

    虽然第三个参数没有指定type但是我们传入的是一个浮点数类型所以匹配了构造器的Double类型所以这里money就被赋值为100.0ageint就没有被赋值

  • 指出第三个参数的type为int类型
  • 输出结果 User_Add{name‘LiSi’, sex‘Female’, age100, moneynull}

    第三个参数指定type为int类型我们传入的值为100所以这里第三个参数为int类型的构造器就被匹配了所以这里money没有被传入值就变成了null

    3.指出第三个参数的type为Double类型

    输出结果 User_Add{name‘WangWu’, sex‘Male’, age0,money100.0}

    第三个参数指定type为Double类型我们传入的值为100.0所以这里第三个参数为Double类型的构造器就被匹配了所以这里age没有被传入值就变成了0,money变成了100.0

    细节补充

    • 细节一指出第三个参数的type为int类型,但是我们传入浮点数

    constructor-arg value“100.0” type“int”

    这样是不可以的因为type类型明确指出是int类型但是你value值给出的是浮点型所以这里编译都无法通过

    • 细节二指出第三个参数的type为Double类型,但是我们传入整型是可以的

    • 细节三double数据类型和Double数据类型一定要注意type一定要对应不然会抛异常”Unsatisfied dependency expressed through constructor parameter 2: Ambiguous argument values for parameter of type [java.lang.Double] - "did you specify the correct bean references as arguments?"


    4.讲解 " ![CDATA[]] " 属性的使用

    首先了解一个这个标签是干什么的如何使用在配置文件中因为像 ‘<’ 这样的敏感标签当你某些成员变量需要用到这样的敏感标签的情况下spring配置文件是无法解析的所以需要借助 ![CDATA[]] 标签来使用

    • 基本使用![CDATA[ values ]]

    • 补充如果某成员变量想赋予空值可以使用null


    5.讲解内部bean的使用

    这里自由互联小编还是利用 上面给出的两个实体类来讲解 首先先配置 根据 构造器配置beanpublic User_Caffr(String user_name, String user_sex, int user_age, Car car)

    • 配置String user_name, String user_sex, int user_age

    • 配置最后一个参数Car有多种配置方式 ref 和 内部 bean 配置方式这里我们采用内部bean的配置方式配置

    不难发现内置bean和普通的配置bean的过程是一致的但是这里需要注意的是内置的bean自由互联小编并没有给ID因为外部也无法引用内置bean所以这里不需要给出ID

    好了这里就是自由互联小编整理的关于Bean的属性使用了如果有说错的地方或者说的不好的地方希望得到大家的意见和建议.

    上一篇:包含clsjsb的丁香客的词条
    下一篇:没有了
    网友评论