1、简单java 类,实现 Serializable 接口

package com.curtis.bean;import java.io.Serializable;@SuppressWarnings("serial")public class Person implements Serializable {  private String name;  private Integer age;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public Integer getAge() {    return age;  }  public void setAge(Integer age) {    this.age = age;  }  @Override  public String toString() {    return "Person [name=" + name + ", age=" + age + "]";  }}

2、spring jar包

commons-logging-1.1.3.jar

spring-aop-4.3.3.RELEASE.jar

spring-beans-4.3.3.RELEASE.jar

spring-context-4.3.3.RELEASE.jar

spring-core-4.3.3.RELEASE.jar

spring-expression-4.3.3.RELEASE.jar

3、spring 配置文件

名字叫:applicationContext.xml 这个名称可以自己定义,没必要非要叫applicationContext.xml

applicationContext.xml 文件中

案例1: <bean id="person" class="com.curtis.bean.Person"> <property name="name" value="Jerry"></property> <property name="age" value="27" /> </bean> ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println(ctx.getBean("person",Perspn.class));

说明:property 标签中的name 属性对应java bean中set 方法后面的内容,后面的value是java bean 对应属性赋值;getBean方法如果不指明第二个参数,就需要强制类型转换定义的bean如果在applicationContext.xml 文件中只出现一次,可以通过类名.class 的方式,无需传第二个参数,不需要进行强制类型转换Person p1=(Person) ctx.getBean("person");System.out.println(ctx.getBean(Perspn.class));java bean 中有多个属性,可以给部分属性进行赋值,没有被赋值的属性是对应数据类型的默认值由于是通过反射的方式,建议明文在java bean 中定义无参数的构造方法结束标签可以在property 上面直接关闭也可以通过value 标签进行赋值<value>Jerry</value>bean 标签、id属性、class属性property 标签 name属性、value属性

案例2:public Person(String name) { // 构造方法  this.name=name;}<bean id="person" class="com.curtis.bean.Person">  <constructor-arg value="Tom"></constructor-arg></bean>

说明:通过构造方式的给属性赋值的方式,需要定义无参的构造方法;如果出现构造方法的重载需要通过索引(index)值,或者参数数据类型进行明确到底调用的是哪个构造方法;

index 索引从0开始

type java.lang.String 等

上面两种可以混用

如果只有一个有参的构造方法,可以一句参数列表依次给参数赋值。

如果是数值类型,数据会自动进行转换(String转成数值类型);

<bean id="car" class="com.atguigu.spring.helloworld.Car">  <constructor-arg value="KUGA" index="1"></constructor-arg>  <constructor-arg value="ChangAnFord" index="0"></constructor-arg>  <constructor-arg value="250000" type="float"></constructor-arg></bean>

案例3:特殊字符<value><![CDATA[<深圳>]]></value>

案例4:引用类型 ref人有汽车,一个Person 的类,也有一个Car 的类分别通过<bean></bean>定义Person、CarPerson bean中可以通过ref 对Car 进行引用package com.curtis.bean;import java.io.Serializable;@SuppressWarnings("serial")public class Car implements Serializable {  private String brand;  private double price;  public String getBrand() {    return brand;  }  public void setBrand(String brand) {    this.brand = brand;  }  public double getPrice() {    return price;  }  public void setPrice(double price) {    this.price = price;  }  @Override  public String toString() {    return "Car [brand=" + brand + ", price=" + price + "]";  }  public Car() {    // TODO Auto-generated constructor stub  }}package com.curtis.bean;import java.io.Serializable;@SuppressWarnings("serial")public class Person implements Serializable {     private String name;  private Integer age;  private Car car;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public Integer getAge() {    return age;  }  public void setAge(Integer age) {    this.age = age;  }  public Car getCar() {    return car;  }     public void setCar(Car car) {    this.car = car;  }     @Override  public String toString() {    return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";  }  public Person() {  }     public Person(String name) {    this.name=name;  }}applicationContext.xml 文件中<bean id="person" class="com.curtis.bean.Person">  <property name="name" value="Curtis" />  <property name="car" ref="car"></property></bean><bean id="car" class="com.curtis.bean.Car">  <property name="brand" value="Baoma" />  <property name="price" value="500000" /></bean>

案例5:内部bean<bean id="person" class="com.curtis.bean.Person">  <property name="car">    <bean class="com.curtis.bean.Car">      <property name="brand" value="Audi"></property>    </bean>  </property></bean>

说明:bean 在property 标签内部;内部bean 不需要指明id属性

案例6:list一个人可能有多辆车package com.curtis.bean;import java.io.Serializable;import java.util.List;@SuppressWarnings("serial")public class Person implements Serializable {  private String name;  private Integer age;  private List<Car> car;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public Integer getAge() {    return age;  }  public void setAge(Integer age) {    this.age = age;  }  public List<Car> getCar() {    return car;  }  public void setCar(List<Car> car) {    this.car = car;  }  @Override  public String toString() {    return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";  }  public Person() {    // TODO Auto-generated constructor stub  }}<bean id="car1" class="com.curtis.bean.Car">  <property name="brand" value="Baoma" />  <property name="price" value="500000" /></bean><bean id="person" class="com.curtis.bean.Person">  <property name="name" value="Curtis" />  <property name="car">    <list>      <bean class="com.curtis.bean.Car">        <property name="brand" value="比亚迪" />      </bean>      <ref bean="car1"/>    </list>  </property></bean>

写在最后:欢迎留言讨论,加关注,持续更新!!!

阿里P7浅谈Java的Spring Bean的更多相关文章

  1. 阿里P7浅谈SpringMVC

    一.前言 既然是浅谈 SpringMVC,那么我们就先从基础说起,本章节主要讲解以下内容: 1.三层结构介绍 2.MVC 设计模式介绍 3.SpringMVC 介绍 4.入门程序的实现 注:介绍方面的 ...

  2. !! 浅谈Java学习方法和后期面试技巧

    浅谈Java学习方法和后期面试技巧 昨天查看3303回复33 部落用户大酋长 下面简单列举一下大家学习java的一个系统知识点的一些介绍 一.java基础部分:java基础的时候,有些知识点是非常重要 ...

  3. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  4. 浅谈java类集框架和数据结构(2)

    继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...

  5. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  6. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  7. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  8. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  9. 浅谈JAVA集合框架

    浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...

随机推荐

  1. 怎样修复社区项目Karbor的Bug?

    1.准备工作. 点击Settings按钮进行设置,跳转到 https://review.openstack.org/#/settings/ 2.选择用户名称. 这个选择之后不能修改. 3.设置http ...

  2. MVC之自定义过滤器(ActionFilterAttribute)

    一.自定义Filter 自定义Filter需要继承ActionFilterAttribute抽象类,重写其中需要的方法,来看下ActionFilterAttribute类的方法签名. //表示所有操作 ...

  3. easyui 解决连弹两个dialog时候,第二个dialog居中问题

    $('#showDivSecond').dialog('center'); (该方法自1.3.1版开始可用)

  4. python数据结构_递归_汉诺塔问题

    已经不是第一次写这个汉诺塔问题, 其实递归还真是不太好理解, 因为递归这种是想其实有点反人类, 为什么? 因为不太清楚, 写个循环一目了然, 用递归其实要把核心逻辑理清楚, 要不根本没法进行下去 所有 ...

  5. Machine Learning Stanford Univerisity (Week 1)

    1. 机器学习是什么? "A computer program is said to learn from experience E with respect to some class o ...

  6. Information retrieval (IR class2)

    1.  解析文档一般要分析哪些方面? - 首先分析文档的格式,是docx,html,xml,pdf... - 其次分析文档的语言,是英语,汉语,日语,德语... - 使用的什么字符集,ASCII编码, ...

  7. [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等

    详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...

  8. 深入理解 Css3 的 clip-path

    clip-path CSS 属性可以创建一个只有元素的部分区域可以显示的剪切区域.区域内的部分显示,区域外的隐藏.clip-path属性代替了现在已经弃用的剪切 clip属性.clip-path的属性 ...

  9. mssql sqlserver时间戳与时间格式互相转换的方法分享

    转自: http://www.maomao365.com/?p=9336 摘要: 下文讲述mssql中时间戳和时间格式的转换方法,如下所示: 实验环境:sql server 2008 R2 时间戳简介 ...

  10. oracle调用函数的方式

    --方法1.PLSQL代码块 SQL> set serveroutput onSQL> declare 2 v_sal emp_pl.sal%type; 3 begin 4 v_sal : ...