2011-06-01 48 views

回答

2

如果一切都在同一臺機器上,您可能需要使用singleton。這是一個可以輕鬆訪問和調用的單一實例。

對於長期存儲,如果數據庫不是一個選項,你可能想要將你的bean轉換爲一個文件,或者直接寫你自己的文件格式並輸出。

0

這是單身人士的經典用法。如果您只有其中的幾個,則可以爲每個值創建一個單例。如果你有一堆這些,你可以寫一個'服務'來設置和查找值。

在春天,你可以這樣做:在春季

import org.springframework.beans.factory.FactoryBean; 

public class TimeUp implements FactoryBean<String> { 
    private final String _value = new Date().toString(); 

    public String getObject() { 
    return _value; 

    public Class<?> getObjectType() { 
    return String.class; 
    } 

    public boolean isSingleton() { 
    return true; 
    } 
} 

然後,你會簡單地做:

<bean id="timeUp" class="example.TimeUp"/> 
0

一個這樣做是讓你的servlet類的一個方式或過濾器類具有Date類型的公共靜態最終成員,並在聲明行上將其設置爲新的日期對象。那麼你可以做「servlet類名(點)公共成員名」來訪問這個值。

如果您在servlet中執行此操作,則必須在web.xml中聲明該servlet爲「加載啓動時」servlet。否則它將不會得到它的日期值,直到第一次使用該servlet時,這並不是你想要的:)

1

ContextListenercontextInitialized方法中初始化的單例將是我的第一個呼叫點。

0

如果你真的只想應用程序的正常運行時間,你應該能夠如果你正在尋找一個更抽象的答案,請使用以下

RuntimeMXBean mx = ManagementFactory.getRuntimeMXBean(); 
long uptimeInMillis = mx.getUptime(); 

,然後克里斯給了一個很好的解決方案。

0

您可以使用單例:

public class Environment { 

    private final long startTime = ManagementFactory.getRuntimeMXBean().getStartTime(); 

    public long getStartTime() { 
     return this.startTime; 
    } 


    private static final Environment SINGLETON = new Environment(); 

    private Environment() { 
     //nop 
    } 

    public static Environment getInstance() { 
     return SINGLETON; 
    } 
} 
2

的Spring Bean,默認情況下,單身。所以只需爲此創建一個bean。

@Component 
public class TimeUp { 
    private final String _timeUp = new Date().toString(); 
    public String getTimeUp() { _timeUp }; 
} 

然後在你需要的地方注入這個bean。

@Component 
public class Whatever { 
    @Autowired TimeUp timeUp; 

    public void useTimeUp() { 
    System.out.println(timeUp.getTimeUp()); 
    } 
} 
相關問題