Is it possible to create a Java Model Object at runtime and map the fields from the Spring Batch Reader dynamically?
我们正在尝试使Spring批处理工作更加通用。在此过程中,我们还希望使在读取器,处理器和写入器之间传递的模型对象具有通用性/动态性。
如果我们将表名,列名,类型名存储在数据库中,并在运行时获取此信息,我们将能够动态创建模型类,映射在读取器中读取的数据并将其传递跟作者在一起?
是否可以在运行时创建MyClass并根据配置进行映射?
RowMapper不接受泛型吗?
那么,如何在代码中指定它而不在运行时实际拥有一个已编译的类呢?
公共类MyRowMapper实现RowMapper {
1 2 3 4 5 6 7 8 9 10 | @Override public MyClass mapRow(ResultSet rs, int rowNum) throws SQLException { MyClass myClass= new MyClass(); myClass.setName(rs.getString("Name")); myClass.setNumber(rs.getLong("Number")); return myClass; } } |
will we be able to create a model class on the fly, map the data read in the reader and pass it along to the writer?
是的,您可以使用字节码库在运行时创建类,然后使用反射分配值,然后将对象传递给周围,但这有什么意义呢?
如果没有代码提前知道对象,那么即使使用数据的代码也需要使用反射来访问数据。
您也可以只使用
Spring已经可以为您完成此任务。例如。使用
您可以直接致电