關於Spring的搭建可參見:淺析Spring框架的搭建. 在測試之前還是應該先將環境配置好,將相關Jar包導進來。 Spring建立的對象,預設都是單例模式,除非透過scope指定。
最基本的物件建立方式,只需要有一個無參構造函數(類別中沒有寫任何的建構函數,預設就是有一個建構函數,如果寫了任何一個建構函數,預設的無參構造函數就不會自動建立哦!!)和欄位的setter方法。
Person類別:
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id; public String getName() {return name; }public void setName(String name) {this.name = name; }public Integer getId() {return id; }public void setId(Integer id) {this.id = id; } @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]"; } }
XML配置:
<?xml version="1.0" encoding="UTF-8"?><beans><bean><property></property><property></property></bean> </beans>
<span style="color: #008000;"><!--<span style="color: #008000;">静态的工厂方法核心是class+factory-method <span style="color: #008000;">--><span style="color: #0000ff;"><span style="color: #800000;"><span style="color: #ff0000;"><span style="color: #0000ff;"><span style="color: #ff0000;"><span style="color: #0000ff;"><span style="color: #ff0000;"><span style="color: #0000ff;"><span style="color: #0000ff;"><span style="color: #800000;"><span style="color: #0000ff;"><br> <span style="color: #008000;"><span style="color: #008000;"><span style="color: #008000;"> <span style="color: #0000ff;">bean <span style="color: #ff0000;">id<span style="color: #0000ff;">="person"<span style="color: #ff0000;"> class<span style="color: #0000ff;">="com.mc.base.learn.spring.factory.PersonStaticFactory"<span style="color: #ff0000;"> factory-method<span style="color: #0000ff;">="createPerson"<span style="color: #0000ff;">><br><span style="color: #008000;"><!--<span style="color: #008000;">通过property方法向createPerson传递参数 <span style="color: #008000;">--></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br> <property name="name" value="LiuChunfu"></property><br> <property name="id" value="125"></property><br> <br></span></span></span></span></span></span></span></span></span>測試如下:
@Testpublic void testName() throws Exception { ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); Person person=ac.getBean("person3", Person.class); System.out.println(person);//Person [name=LiuChunfu, id=125]}三、透過實例工廠方式建立物件。 實例工廠,就是透過實例來呼叫對象,但所得到的對象最終也是單利模式。實例工廠和靜態工廠創建的物件都是單例模式,兩者的差異就是創建物件的實際不同,靜態工廠是在創建容器的時候就創建了,實例工廠是在調用方法的時候才創建。知道Java設計模式中的單例模式設計(餓漢式和懶漢式)的讀者,對這裡的靜態工廠模式和實例工廠模式肯定有所體會。
<bean></bean><bean><property></property><property></property></bean>########
@Testpublic void testName() throws Exception { ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); Person person=ac.getBean("person4",Person.class); System.out.println(person);//Person [name=LiuChunfu, id=125]}###### rrreee######當然上面的創建物件傳遞參數,除了能夠在創建物件的時候透過傳入預設的參數,也可以在後面透過setter方法進行傳參。 ###
以上是Spring創建物件的方式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!