Spring boot + Mybatis的例子,运行需要PostgreSQL Server。
有两个dao类,都在cn.devmgr.tutorial.springboot.dao包内,对应的在src/main/resource/cn/devmgr/tutorial/springboot/dao目录下有2个XML文件。 dao类中方法用到的SQL,简单的有用注解写在接口内,稍微长点的写在了XML内。 TvSeriesService是业务逻辑处理类。属于业务逻辑层。 TvSeriesController是web层控制器,接收请求并处理。 为了清晰的区分出各个类所属的层,每层放在了不同的package内,controller是web控制层,service是业务逻辑层,dao是数据访问层,pojo内放置的类是dto po,此例中没有区分dto和po,几个层级共用同一套pojo。
如果没有PostgreSQL Server,请先安装一份。可从http://www.postgres.org下载。 创建一个数据库,名为tvseries,并在此数据库内创建2个表,建表语句可参考sq.sql(./sql.sql)文件。 修改application(./src/main/resources/applicaiton.yml)中的数据库连接字符串
mvn spring-boot:run
HTTP Action: GET /tvseries
对应的方法: TvSeriesController.getAll()
测试方法:
curl http://localhost:8080/tvseries
HTTP Action: GET /tvseries/{id}
对应的方法: TvSeriesController.getOne(int id)
测试方法:
curl http://localhost:8080/tvseries/101
curl http://localhost:8080/tvseries/404
HTTP Action: POST /tvseries
对应的方法: TvSeriesController.insertOne(TvSeriesVo tvSeriesVo)
测试方法:
curl -H "Content-Type:application/json" -X POST --data '{"name":"West World", "seasonCount":1, "originRelease":"2016-10-02", "tvCharacters":[{"name":"Waytt"},{"name":"Dolores"}]}' http://localhost:8080/tvseries
HTTP Action: PUT /tvseries/{id}
对应的方法: TvSeriesController.updateOne(int id, TvSeriesVo tvSeriesVo)
测试方法:
curl -H "Content-Type:application/json" -X PUT --data '{"name":"West World", "seasonCount":1, "originRelease":"2016-10-03"}' http://localhost:8080/tvseries/101
HTTP Action: DELETE /tvseries/{id}
对应的方法: TvSeriesController.deleteOne(int id, HttpServletRequest request)
测试方法:
curl -X DELETE http://localhost:8080/tvseries/101?delete_reason=duplicated
curl -X DELETE http://localhost:8080/tvseries/101
HTTP Action: POST /tvseries/{id}/photos
对应的方法: TvSeriesController.addPhoto(int id, MultipartFile imgFile)
测试方法(当前目录下有img.jpg文件):
curl -F "photo=@img.jpg" http://localhost:8080/tvseries/101/photos
HTTP Action: GET /tvseries/{id}/icon
对应的方法: TvSeriesController.getIcon(int id)
测试方法:
curl -X GET http://localhost:8080/tvseries/101/icon