通過第一篇學習筆記對Spring架構有了一個大體的了解之後,開始記錄正題。
首先記錄配置的前提就是建立項目。
好,那這篇文章就從頭開始。。。。。
(一) 建立一個Java項目
好,第一步很簡單,學習Spring架構的前提首先就是先學會搭建架構。具體的搭建架構的文章沒寫,劍指 搭建Spring架構
恭喜第一部搭建架構完成 可以順利的編寫代碼了。。。
首先建立一個包,在建立一個實體類,本文以Person類 Car類為例
Person類
package Car;
public class Person {
private String name;
private int age;
private Car car;
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;
}
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 + "]";
}
}
Car類
package Car;
public class Car {
private String brand;
private String corp;
private double price;
private int maxspeed;
public Car(String brand, String corp, double price) {
super();
this.brand = brand;
this.corp = corp;
this.price = price;
}
public Car(String brand, String corp, int maxspeed) {
super();
this.brand = brand;
this.corp = corp;
this.maxspeed = maxspeed;
}
@Override
public String toString() {
return "Car [brand=" + brand + ", corp=" + corp + ", price=" + price + ", maxspeed=" + maxspeed + "]";
}
}
配置Car的xml檔案。
右鍵Src選擇Spring bean 建立一個XML配置檔案,首先配置car類
1. 全類名屬性配置Car
(注意 Car類中需要添加get set函數 不需要寫構造方法)
<bean id="c1" class="Car.Car">
<property name="brand" value="Baoma"></property>
<property name="corp" value="Beijing"></property>
<property name="price" value="300000"></property>
<property name="maxspeed" value="260"></property>
</bean>
2.全類名構造器配置Car (注意Car類中必須加構造方法,建立的構造方法用于配置,不需要寫Get Set函數)
<bean id="car" class="Car.Car">
<constructor-arg value="aodi"></constructor-arg>
<constructor-arg value="shanghai"> </constructor-arg>
<constructor-arg value="300000"></constructor-arg>
</bean>
3. 需要注意的是構造器配置中如果類中有多個構造方法
① . 按索引比對入參 即通過index 注入

②. 按類型比對入參 通過type注入
4. 如果注入的值中有特殊字元
用<value> <![CDATA[ 字元 ]]></value> 方法注入
<bean id="car2" class="Car.Car">
<constructor-arg value="baoma" type="java.lang.String"></constructor-arg>
<constructor-arg type="java.lang.String">
<value> <![CDATA[上海~]]></value>
<!-- 通過CDATA給參數指派 用于字面值有特殊字元的字元串 -->
</constructor-arg>
<constructor-arg value="240" type="int"></constructor-arg>
</bean>
5. 引入其他類型的bean 即在Person類中引用Car類
可以直接通過 ref 引入配置完成的car的id。
<property name="car" ref="car"></property>
6. 内部引入其他類型的car,用于需要引用的Car類還沒有配置,可以在Person類中直接配置
這裡需要注意的就是内部配置的Car 就不能被外部調用 是以不用寫ID
<bean id="person" class="Car.Person">
<property name="name" value="Tom"></property>
<property name="age" value="20"></property>
<!-- 内部Bean 不能被外部使用 隻能在内部被調用 不用寫ID-->
<property name="car">
<bean class="Car.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="北京"></constructor-arg>
<constructor-arg value="240" type="int"></constructor-arg>
</bean>
</property>
7. 配置null屬性
簡單粗暴 直接null
<constructor-arg><null></null></constructor-arg>
8. 集合屬性
(如一個人有多輛車,那麼配置Person屬性的時候就要考慮車這一個集合了)
① . 在 Spring中可以通過一組内置的 xml 标簽(例如: <list>, <set> 或 <map>) 來配置集合屬性。
<bean id="person2" class="Car2.Person">
<property name="name" value="Rose"></property>
<property name="age" value="21"></property>
<property name="cars" >
<!-- 直接利用list 以及ref調用 -->
<list>
<ref bean="car"></ref>
<ref bean="car2"></ref>
</list>
</property>
</bean>
加一個Map集合的
<!-- 配置Map集合屬性指派 -->
<bean id="person3" class="Car2.Person2">
<property name="name" value="Kobe"></property>
<property name="age" value="22"></property>
<property name="cars">
<map>
<entry key="AA" value-ref="car"></entry>
<entry key="BB" value-ref="car2"></entry>
</map>
</property>
</bean>
②. 還可以通過内部配置bean配置加入
<list>
<ref bean="car"></ref>
<ref bean="car2"></ref>
<bean class="Car.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="北京"></constructor-arg>
<constructor-arg value="2600000" type="double"></constructor-arg>
</bean>
</list>
③. 引入Util命名空間
建立一個list 後面可以直接引用外部bean “cars”
<!-- Util配置 -->
<util:list id="cars">
<ref bean="car"/>
<ref bean="car2"/>
</util:list>
9. P命名空間 (據說不常用,但是我個人感覺配置超級簡單!!)
第一步引入 P 的命名空間(具體操作不會的話就是,點選代碼框左下角有一個 namespace 然後點選 p 點确定就ok了)
開始配置
<!-- P命名空間配置 -->
<bean id="person4" class="Car2.Person" p:name="James" p:age="35" p:cars-ref="cars"></bean>
一行代碼直接結束。
這一篇就先寫這麼多吧。。。