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:
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 標籤進行賦值
Jerry bean 標籤、id屬性、class屬性
property 標籤 name屬性、value屬性
案例2:
public Person(String name) { // 構造方法
this.name=name;
}
說明:通過構造方式的給屬性賦值的方式,需要定義無參的構造方法;如果出現構造方法的重載需要通過索引(index)值,或者參數數據類型進行明確到底調用的是哪個構造方法;
index 索引從0開始
type java.lang.String 等
上面兩種可以混用
如果只有一個有參的構造方法,可以一句參數列表依次給參數賦值。
如果是數值類型,數據會自動進行轉換(String轉成數值類型);
案例3:
特殊字符
]]>
案例4:
引用類型 ref
人有汽車,一個Person 的類,也有一個Car 的類
分別通過
定義Person、Car Person 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 文件中
案例5:
內部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; 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
getCar() { return car;
}
public void setCar(List
car) { this.car = car;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";
}
public Person() {
// TODO Auto-generated constructor stub
}
}
寫在最後:歡迎留言討論,私信“Java”或“架構資料”有驚喜!加關注,持續更新!!!
閱讀更多 Java互聯網架構師 的文章