将Spring XML配置转换为Java配置

时间:2010-02-10 14:26:25

标签: java xml spring configuration

我想使用Spring配置Java,但几乎所有示例都是用XML编写的,我不知道如何将它们转换为Java。看看这些examples from Spring Security 3

 <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的部分,但没有那么有用。

3 个答案:

答案 0 :(得分:3)

关注JavaConfig项目documentation

答案 1 :(得分:2)

这可能比您想象的更简单。春天没有做任何魔术。 XML配置解析器只创建bean定义并将其注册到bean工厂。您可以通过创建DefaultListableBeanFactory并使用它注册bean定义来执行相同的操作。这里的主要错误是认为“哎呀,我只是创建bean并将它们放在app环境中”。这种方法不起作用,因为Spring懒惰地创建bean,而API是围绕工厂的想法构建的,在必要时调用它,而不是在启动时完成所有工作的工厂。

Here is some example code。请注意,此示例需要更多代码行,但通过定义自己的帮助程序方法,您应该能够将其分解为与XML相同的内容。

另请查看source for the Spring unit tests示例。

答案 2 :(得分:1)

您无法使用自定义命名空间(例如http://www.springframework.org/schema/security)转换XML配置。但是,您可以使用@ImportResource

将XML配置与基于Java的配置混合使用