Java 接口中的POJO
为了进行研究,我编写了一个Java 接口中的POJO,java,json,xml,dependency-injection,jersey,Java,Json,Xml,Dependency Injection,Jersey,为了进行研究,我编写了一个songWebservice,这是一个使用Jersey的REST服务,部署在Tomcat中。数据库是一个本地json文件。dataService有一个接口ISongDB,与依赖项注入和抽象绑定一起使用。都很好 现在(下一个任务)将改进songWebService,并用外部数据库替换本地json 为了避免复制接口、导入无用的实现或将其全部放在一个项目中,我将接口移动到一个独立的项目中,我在pom.xml中引用了该项目。现在我有两个项目,包括: -songWebServic
songWebservice
,这是一个使用Jersey的REST服务,部署在Tomcat中。数据库是一个本地json文件。dataService
有一个接口ISongDB
,与依赖项注入和抽象绑定一起使用。都很好
现在(下一个任务)将改进songWebService
,并用外部数据库替换本地json
为了避免复制接口、导入无用的实现或将其全部放在一个项目中,我将接口移动到一个独立的项目中,我在pom.xml中引用了该项目。现在我有两个项目,包括:
-songWebServiceInterface
-src.main...songWebService
- web
- ISongWebService [ Song getSong(id); int postSong(song) ]
- AbstractSongWebService impl ISongWebService [ protected ISongDB;]
- database
- ISongDB [ Song getSong(id); int postSong(song) ]
- Abstract impl ISongDB [ protected abstract void init() ]
- pojo ???
-songWebServiceFileDB
-src.main...songWebService
- web
- SongWebService extends AbstractSongWebService
- database
- FileSongDB extends AbstractSongDB
- pojo ???
我的问题是POJO(歌曲
)
首先在接口项目中,我使用了一个接口ISong
,所有属性都有getter和setter。在fileDB项目中,我放置了一首Song
实现ISong
。在对象映射之前感觉很好。我无法在ISong
中转换json或xml并将其作为Song
通过web传递,也无法在我的文件中接收json或xml并将其作为ISong
传递
我真的认为这可以工作,但我没有发现如何映射接口的提示。当然,我将歌曲
绑定到ISong
,但是缺少了其他内容。请提供一个模式和/或示例
一个变通解决方案是将歌曲
直接放置在接口项目中,而不使用接口。这是可行的,但它确实很难看——现在我需要在接口项目中定义与数据库相关的注释和与映射/编组相关的注释,而这并不是我想要的(也许我希望在不同的实现中使用不同的数据库结构)。
我曾考虑过使用反射在实现中“按代码”添加注释,但我认为这不是应该的方式
我确信这有一个共同的模式,但我迷路了
我应在何处以及如何实施POJO,目标如下:
- 在接口中使用它们来定义方法
- 在实现中使用注释和自定义逻辑对其进行自定义
- 用于JSON通信的模型
- 数据存储模型