【问题标题】:Spring XML from existing beans - how?来自现有 bean 的 Spring XML - 如何?
【发布时间】:2011-08-28 23:07:10
【问题描述】:

我有 java bean:

package com.denisk.beans;
...
public class SomeBean {
    private String someProperty;
    private AnotherBean anotherBean;
    ...
}

public class AnotherBean {
    private String anotherProperty;
    ....
}

我想为这些 bean 生成一个 stub xml spring 配置,类似于

<beans>
    <bean id="someBean">
        <property name="someProperty" value="sldfjslkdfjas;lfj"/>
        <property name="anotherBean" ref="anotherBean"/>
    </bean>
    <bean id="anotherBean">
        <property name="anotherProperty" value="klj;df;ksdjflsjkd;lfj"/>
    </bean>
</beans>

我希望使用一些工具来完成此操作,该工具将接受我的 bean 的路径作为输入,如下所示:

denisk@denisk-work:~$ generateSpringXml -p "/home/denisk/myProject/src/main/java/com/denisk/beans" -output "/home/denisk/mySpringConfig.xml"

应该没什么大不了的,但我不能用谷歌搜索出类似的东西。

谢谢

【问题讨论】:

  • 这是一个有趣的任务,但我想知道有什么意义。如果您有一个不使用 DI 的应用程序,您仍然需要编写大量代码来更改它,appcontext xml 不会解决任何问题。你能说出具体的意图吗?
  • 我想创建集成测试。我希望数据在春天被填充。我会将数据保存到数据库中,并使用相同的 spring 配置来验证它是否正确保存。问题是实体有两三百个,手动为它们编写spring config的工作量很大。我想生成存根并在之后对其进行编辑 - 这样可以节省我两三天的工作时间。

标签: java xml spring dependency-injection code-generation


【解决方案1】:

看看这个:

https://github.com/mangstadt/Spring-Application-Context-Generator

这将获取 Java 类的列表并为它们生成 XML bean 定义。它为每个公共类生成一个&lt;bean /&gt; 元素,为每个公共字段和setter 方法生成一个&lt;property /&gt; 元素,如果只有一个构造函数并且该构造函数不是默认构造函数,则生成一个&lt;constructor-arg /&gt; 元素列表。

例子:

java com.mangst.appcontext.ApplicationContextGenerator --source=/home/denisk/myProject/src/main/java --package=com.denisk.beans

如果您尝试一下,如果有任何问题,请告诉我,以便我进行改进。

【讨论】:

  • 哇,它有效!而且是你自己写的——你这个摇滚人!可以稍微调整一下以递归地通过包吗?
  • @denisk 是的,好的,现在尝试使用--recurse 标志。
  • 太好了,谢谢!你的工具非常整洁。您是否考虑过为其添加 ant 或 maven 构建?
  • @denisk 嗯,是的,添加 ant/maven 改进了构建过程。
  • 很棒的包!谢谢!一个小请求 - 你能在你的 POM 中包含 JDK 编译目标吗?我认为您正在使用 6+
猜你喜欢
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2015-09-20
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多