我正在使用jax-rs和spring編寫Web服務。我有一個Singleton類表示一個名爲「Datasource」的數據庫連接池。Java/Spring:如何在服務器啓動時表示對象
Datasource datasource = Datasource.getInstance();
Connection connection = datasource.getConnection();
此代碼運行,因此單是在第一個「查詢」創建的,但我想創建在服務器啓動時的單一實例。我該如何做到這一點?在我的web.xml中,我有
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application.xml</param-value>
</context-param>
並在application.xml中我有
<bean name="myRoutes" class="com.package.myClass" />
難道我在這兒加上豆?
DI框架如Spring背後的想法是*消除像'Datasource'這樣的單例。是否有一個原因,你不是在任何地方注入實例,而是手動調用'getInstance()'? –
@TomG,可能只是我是這個框架的新成員,而且還沒有深入瞭解它。這是什麼樣子? –
在你要使用'Datasource'的類中,你可以要求通過'@ Autowired'注入 - 例如'@Autowired public Foo(Datasource ds){...}'。如果您將一個'Datasource'實例作爲一個bean提供,那麼通過將其配置爲XML,它將在創建時提供給這些類。查看Spring文檔獲取更多背景信息。 –