2014-10-28 35 views
0

我有春天兩個主要的疑慮:約春天參考聲明和應用方面的問題

  1. 當我們從上下文豆,難道我們必須使用方式,如:

    context = new ClassPathXmlApplicationContext("applicationContext.xml");

    是否只能通過這種明確的方式來調用? 我在想,當網站啓動時,這個春天的配置文件也應該被讀取。

  2. 當我們使用彈簧或其他類似的包JSTL等的標籤,我們應給予基準語句首先,如:

    <%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>

    我很好奇的是,當頁面解析, Web服務器確實下載了這個uri並在這個頁面中使用它?但沒有互聯網,它似乎也起作用。它是如何工作的,或者爲什麼我們必須將它添加到文件的頭部。

回答

1
  1. 這的確是可能的方式來獲得Spring上下文一個bean,但它可能會被認爲是擊敗具有dependency injection一個bean容器的目的。容器的目標是將bean提供給你的類,所以它們不需要直接從上下文中實例化或抓取它們。有關(基於xml)DI的簡單示例,請參見short tutorial

  2. <%taglib>標記中的uri屬性可以在本地解析,如果tld在某個特定路徑下的類路徑中。見With JSP, does the taglib URI mean that my site is reliant on the URI resolving?

+0

非常感謝。 – 2014-10-29 07:18:10

+0

嗨,哈維洛佩斯。關於第一個問題我如何在我的java代碼中獲得一個bean? – 2014-10-29 07:20:42

+0

現在我知道了。我們可以使用了ApplicationContextAware度日覆蓋其制定者的背景: @覆蓋 \t公共無效setApplicationContext(ApplicationContext中的applicationContext)拋出BeansException \t { \t \t如果(的applicationContext == NULL) \t \t { \t \t \t這一點。 applicationContext = applicationContext; \t \t} \t} 和配置這個類在applicationContext.xml中的Bean,如:< 「*。* MyBeanFactory」 bean類=> 但我仍然有一個關於它是如何工作的問題。 當網頁開始和彈簧上下文被讀取後,誰會調用這個setter函數? (我沒有在XML中將這個bean注入任何東西) – 2014-10-29 08:20:44