2010-02-10 106 views
6

我想使用Spring配置Java,但幾乎所有示例都是用XML編寫的,我不知道如何將它們轉換爲Java。看看這些examples from Spring Security 3將Spring XML配置轉換爲Java配置

<http auto-config='true'> 
    <intercept-url pattern="/**" access="ROLE_USER" /> 
</http> 

<authentication-manager> 
    <authentication-provider> 
     <user-service> 
     <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" /> 
     <user name="bob" password="bobspassword" authorities="ROLE_USER" /> 
     </user-service> 
    </authentication-provider> 
    </authentication-manager> 

    <password-encoder hash="sha"> 
    <salt-source user-property="username"/> 
    </password-encoder> 

怎麼會這樣翻譯成Java配置?或者更一般地說,我如何將Spring XML配置文件轉換爲Java?有一小部分關於Java confing in the Spring reference,但它不是那麼有用。

+0

當前版本的Spring Security的有Java的配置不俗的支持,請http://docs.spring.io/spring-security/site/docs/3.2.6.RELEASE/reference/htmlsingle/#jc – 2015-03-11 08:25:45

回答

1

您不能使用自定義命名空間來翻譯XML配置(例如http://www.springframework.org/schema/security)。但是,您可以使用@ImportResource

+0

謝謝。看起來像Spring將永遠是一個XML框架:-( – deamon 2010-02-10 14:43:04

2

這可能比你想象的更簡單的混合與基於Java的XML配置。春天沒有任何魔力。 XML配置解析器只是創建bean定義並將它們註冊到bean工廠。你可以通過創建一個DefaultListableBeanFactory並註冊你的bean定義來做同樣的事情。這裏的主要錯誤是認爲「gee,我只是創建bean並將它們放在應用上下文中」。這種方法是行不通的,因爲春天懶洋洋地創建bean和API是圍繞一個工廠的想法建被調用時必要的,而不是一個工廠,做所有的工作在啓動時。

Here is some example code。請注意,此示例需要更多的代碼行,但通過定義自己的幫助器方法,您應該能夠將其分解爲與XML相同的內容。

另請參閱source for the Spring unit tests的示例。