xmarket APP的后端
swagger API文档
https://github.com/jcalaz/xmarket)
[APP端地址(基于MVP+RxJava+Retrofit+Dagger2+Realm的校园交易市场APP
Server代码中的小实现
- spring data mongo使用MongoTemplate实现复杂数据操作
- Multipart接收多多图片存储,并生成图片获取链接
- 使用SpringMVC拦截器验证Token是否过期和合法
- swagger配置,自动根据springmvc的控制器注解生成API文档
- MongoRepository设置从mongo读取列
- jwt token的创建
- spring boot配置https
APP代码中的小实现
- fresco自定义ImagePipeline,使用OkHttp加载图片,并加入SSL访问证书
- retrofit通过okHttp拦截器实现token验证,过期自动获取新token
- retrofit支持https访问
- RecyclerView万能适配器
- retrofit http日志打印
- 结合RxJava实现的后台轮询
- MVP模式的实现
- Dagger2实现简单依赖注入
- Realm数据库实现页面数据存储
- fresco加载gif,实现启动动画
- fresco实现圆形头像
- RxJava+retrofit实现HTTP访问
- retrofit实现多图片和javabean同时上传
所用技术
- springboot
- springmvc: restful
- spring data mongo: mongo框架
- mongoDB: 数据库
- spring Fox: 生成API在线文档
- react.js: 后台管理ui
- shiro: 权限引擎
注意事项
- APP使用Androidtudio开发,后端采用idea。由于都使用了lombok,两个ide都需要安装lombok插件。
- fresco自定义了ImagePipeline,并且访问时加上了证书,所以只能加载本服务器的图片。
- 目前server的admin后台管理还没有完成,还没有进行mongo建立索引等优化。有时间会陆续加上。
其他配置
-
服务器端访问路径
- APP,在AppConf中配置BASE_URL为服务器访问路径
- server,在application.yml中配置xmarket.address为服务器访问路径
-
默认采用HTTPS协议,如果想使用http协议
- APP,将AppConf的enabled_ssl设置为false
- server,application.yml中将server.ssl.enabled设置为false
-
服务器图片存储物理路径:
-
APP轮询频率:设置AppConf中的Message_Interval
-
APP每页商品加载的条数:设置AppConf中的size
-
服务器图片存储路径: application.yml中设置xmarket.pic_home
https证书使用keytool生成,生成命令
keytool -genkey -alias xmarketkey -keyalg RSA -keysize 1024 -keypass sdjkasl465sd -validity 365 -keystore g:\home\xmarket.keystore -storepass 546sdhjdf //生成证书
keytool -list -v -keystore g:\home\xmarket.keystore -storepass 546sdhjdf //查看证书
keytool -export -alias xmarketkey -keystore g:\home\xmarket.keystore -file g:\home\xmarket.crt -storepass 546sdhjdf //导出证书
keytool -printcert -file g:\home\xmarket.crt //查看证书