我有一个包含根实体(文档)和 VO(文档)的聚合。文档与文件(pdf、图像、office文档等)相关联,因此我必须将聚合保存在数据库中,将文件保存在ftp服务器中(由于空间文件太大,无法将文件保存在数据库中)。我的数据库存储库类实现了一个接口,其中包含 FindXXX、AddDocument、RemoveDocument 等方法。如何实现 ftp 持久性?我的数据库存储库是否应该连接到 AddDocument 和 RemoveDocument 中的 ftp setver?或者我应该创建一个实现该接口的 ftp 存储库类。如果是这样,像 FindXXX 这样的方法就没有意义了。据我对 DDD 的了解,每个聚合只有一个接口存储库来代表如何持久化。它可以有多种“持久模式”(在数据库、FTP、文件等中),但接口应该相同。
我正在测试泽西拦截器和过滤器.我有这个Jersey 2.4拦截器代码:
@Provider
@Test
public class TestInterceptor implements WriterInterceptor, ReaderInterceptor {
private final static Logger log = ....
@Override
public void aroundWriteTo (WriterInterceptorContext context)
throws IOException, WebApplicationException {
log.debug("WriterInterceptor");
context.proceed();
}
@Override
public Object aroundReadFrom(ReaderInterceptorContext ric)
throws IOException, WebApplicationException {
log.debug("ReaderInterceptor");
return ric.proceed();
}
}
Run Code Online (Sandbox Code Playgroud)
我的资源方法:
@Path("{test}")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Test
public FooObj test () {
log.debug("test method");
return new FooObj();
}
Run Code Online (Sandbox Code Playgroud)
两个过滤器:
@Provider
public class ResponseFil implements ContainerResponseFilter {
private final static Logger log = ....
@Override
public void filter(ContainerRequestContext …Run Code Online (Sandbox Code Playgroud)