1、枚舉
在實際編程中,往往存在著這樣的“數據集”,它們的數值在程序中是穩定的,而且“數據集”中的元素是有限的。
例如星期一到星期日七個數據元素組成了一周的“數據集”,春夏秋冬四個數據元素組成了四季的“數據集”。
在java中如何更好的使用這些“數據集”呢?因此枚舉便派上了用場,是枚舉的一個例子:
public enum ColorEnum { RED, GREEN, YELLOW, BLUE; }
2、在spring中配置注入一個枚舉類型對象
1)、定義枚舉類型對象
package com.zcr.util; public enum ColorEnum {
RED, GREEN, YELLOW, BLUE;
}
2)、使用擁有枚舉類型的類
package com.zcr.util //使用枚舉類型 public class Car { private ColorEnum colorEnum; }
3)、spring 配置文件中加入下面的代碼
//spring配置文件注入 <bean id="red" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"> <property name="staticField" value="com.zcr.util.ColorEnum.RED" /> </bean> <bean id="car" class="com.zcr.util.Car"> <property name="colorEnum" ref="red" /> </bean>
注意:
枚舉類型要想注入到類中,一定要先使用org.springframework.beans.factory.config.FieldRetrievingFactoryBean類將枚舉類型進行轉換,即
<bean id="red" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"> <property name="staticField" value="com.zcr.util.ColorEnum.RED" /> </bean>
將ColorEnum.RED轉換為RED這個bean,然後在要注入的bean中使用<property name="colorEnum" ref="red" />引用即可。
3)、調用
在你要注入類的地方加入下面的代碼即可將類信息注入。
@Autowired private Car car;
3、使用java自帶的一個Enum(枚舉)類型進行注入測試
java中也存在著很多的枚舉類,如java.util.concurrent.TimeUnit,它的類定義如下:
public enum TimeUnitextends Enum<TimeUnit>
由上面的定義我們可以看到,它是一個枚舉類。現在我要通過spring文件配置它生成的實例。
在spring配置文件中假如下面的配置:
<bean id="timeUnit" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"> <property name="staticField" value="java.util.concurrent.TimeUnit.SECONDS" /> </bean>
類中調用:
@Autowired private TimeUnit timeUnit;
這樣子該對象就拿到了。
4、為什麼要使用文件配置的方式?
想java的TimeUnit類,它有多種時間單位,毫秒、秒、分、時、天……,而我們在項目中使用的時候,肯定是統一時間單位的,所以我們可以通過配置文件配置,這樣子有利於解耦和,當我們要修改時間單位的時候,我們只需簡單的修改我們的配置文件就可以了,(最好還是少改代碼)。同時,我們肯定在多個地方用到了TimeUnit這個對象,假如我們配置在配置文件中,就只需要修改一個位置即可完成所有調用的修改,易於項目的修改。
致謝:感謝您的閱讀!
Spring中如何配置Hibernate事務 http://www.linuxidc.com/Linux/2013-12/93681.htm
Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm
基於 Spring 設計並實現 RESTful Web Services http://www.linuxidc.com/Linux/2013-10/91974.htm
Spring-3.2.4 + Quartz-2.2.0集成實例 http://www.linuxidc.com/Linux/2013-10/91524.htm
使用 Spring 進行單元測試 http://www.linuxidc.com/Linux/2013-09/89913.htm
運用Spring注解實現Netty服務器端UDP應用程序 http://www.linuxidc.com/Linux/2013-09/89780.htm
Spring 3.x 企業應用開發實戰 PDF完整高清掃描版+源代碼 http://www.linuxidc.com/Linux/2013-10/91357.htm
Spring 的詳細介紹:請點這裡
Spring 的下載地址:請點這裡