将Spring XML配置转换为Java配置

7

我希望使用Java配置来使用Spring,但几乎所有的示例都是用XML编写的,我不知道如何将它们翻译成Java。请看这些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配置?Spring参考文档中有一个关于Java配置的小节,但并不是很有帮助。


Spring Security的当前版本对Java Config有相当不错的支持,详见http://docs.spring.io/spring-security/site/docs/3.2.6.RELEASE/reference/htmlsingle/#jc - Kees de Kooter
3个回答

3

请查看 文档,了解JavaConfig项目。


2
这可能比你想象的更简单。Spring并没有做任何魔法。XML配置解析器只是创建了bean定义并将其注册到bean工厂中。您可以通过创建DefaultListableBeanFactory并向其注册bean定义来执行相同的操作。这里的主要错误是认为“我将创建bean并将它们放入应用程序上下文中”。这种方法不起作用,因为Spring懒惰地创建bean,并且API是围绕在需要时调用的工厂的思想而构建的,而不是在启动时完成所有工作的工厂。 这里有一些示例代码。请注意,此示例需要更多的代码行,但通过定义自己的辅助方法,您应该能够将其分解为与XML相当的内容。
还可以查看Spring单元测试的源代码以获取示例。

1

你无法翻译带有自定义命名空间的 XML 配置(例如 http://www.springframework.org/schema/security)。但是,你可以使用 @ImportResource 将 XML 配置与基于 Java 的配置混合使用。


谢谢。看起来Spring将永远是一个XML框架 :-( - deamon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接