歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Spring 注入一個以枚舉類型對象

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 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved