我正在开发Jackson序列化/反序列化.例如,我有这样的课程:
class Base{
String baseId;
}
Run Code Online (Sandbox Code Playgroud)
我想序列化列表objs; 要使用jackson,我需要指定列表的元素实际类型,因为java类型擦除.此代码将起作用:
List<Base> data = getData();
return new ObjectMapper().writerWithType(TypeFactory.collectionType(List.class, Base.class)).writeValueAsString(data);
Run Code Online (Sandbox Code Playgroud)
现在,我想序列化更复杂的类:
class Result{
List<Base> data;
}
Run Code Online (Sandbox Code Playgroud)
我应该如何告诉杰克逊正确序列化这门课程?
我有一个基于Spring的java应用程序,其中包含一些有用的组件.作为系统的一部分,我有一个groovy脚本,来处理一些报告.我想从groovy脚本中调用spring组件.当我用Java编写时,我需要在其中使用@Autowired注释@Component,即
@Component
class Reporter{
@Autowired
SearchService searchService;
void report(){
searchService.search(...);
...
}
}
Run Code Online (Sandbox Code Playgroud)
我如何从groovy做同样的事情?首先,我如何定义@Component整个脚本?以下代码:
@Component class Holder{
@Autowired
SearchService searchService;
def run(){
searchService.search("test");
}
}
new Holder().run()
Run Code Online (Sandbox Code Playgroud)
在NPE上失败了searchService.GroovyClassloader如果重要的话,我正在运行使用Java实例化的groovyscripts .非常感谢提前!