会不定时更新,有些项目需要重构,可能造成链接失效

Android

第30行,通过自定义的ImagePipelineConfig和OkHttpClient,在自定义的OkHttpClient中加入SSL证书。

通过实现okhttp的Interceptor实现,在me/jcala/xmarket/network/ReqExecutor.java的61行进行注册。

在第47行,证书所在位置R.raw.xmarket,证书利用JDK的keytool工具生成。

通过定义的RecyclerCommonAdapter和RecyclerViewHolder,在github.com/jcalaz/xmar…

第41行,需要导入依赖compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'

实现了安卓的Service,设置onStartCommand方法的返回值可以设置后台轮询的类型,使用了RxJava的Observable.interval方法。如果需要后台服务更新ui,可以通过在需要更新ui的页面接收广播实现。

目的:减少Activity代码量,实现分层,提高可维护性

目的:降耦合,不是类似spring ioc的反射注入,而是编译生成代码注入,不会降低性能,但也明显不如spring ioc或者google guice的简洁

每次打开Activity,从Realm中读取数据(37行),每次下拉刷新后,先删除原有数据,再存入新的数据(69行)。这里没有判断新数据与原数据相同,一并删除,可以自己判断下

public class SplashActivity extends BaseActivity{

//...

protected void initVariables(){

view=(SimpleDraweeView)findViewById(R.id.loading_gif);

DraweeController builder = Fresco.newDraweeControllerBuilder()

.setAutoPlayAnimations(true)

.setUri(Uri.parse("res://drawable/" + R.drawable.splash_loading))//设置uri

.build();

view.setController(builder);

}

//...

}复制代码

通过CommonAdapter和me/jcala/xmarket/view/ViewHolder,在me/jcala/xmarket/mvp/sort/TradeTagPresenterImpl.java的47行有对他的使用

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/info_avatar"

android:layout_width="56dp"

android:layout_height="56dp"

fresco:roundedCornerRadius="56dp"

fresco:roundBottomLeft="true"

fresco:roundBottomRight="true"

fresco:placeholderImage="@mipmap/person"

android:layout_margin="16dp"/>

复制代码

retrofit的接口方法,这里通过在ReqExecutor单例中通过tradeReq()方法获取TradeReq的实例 public interface TradeReq{

@GET(ApiConf.get_school_trades)

Observable>> getSchoolTrades(

@Path("schoolName") String school,

@Query("page") int page,

@Query("size") int size

);

}复制代码

retrofit中的接口方法需要将图片文件转为MultipartBody.Part类型(me/jcala/xmarket/mvp/trade/add/TradeAddPresenterImpl.java的77行) public interface TradeReq{

@Multipart

@POST(ApiConf.create_trade)

Observable> addTrade(

@Part("trade") RequestBody trade,

@Part List parts);

}复制代码

java web

在MongoRepository满足不了要求可通过MongoTemplate实现,spring中已经有MongoTemplate的实例,直接注入使用即可

安卓客户端部分如上:retrofit实现多图片和javabean同时上传

获取x-access-token的值,验证成功返回自定义的HTTP状态码210,否则返回401

返回值为Docket的方法即是配置swagger的配置类,在me/jcala/xmarket/server/ctrl包下的控制器类有swagger的注解

默认读取一个记录的所有属性,只读取特定的属性,可通过@Query(fields = "{ 'id': 1,'title':1}")设置

第99行,在application.yml中设置了JWT的密匙和生命周期

xmarket.keystore数字证书通过keytool生成 ssl:

key-store: classpath:xmarket.keystore

key-store-password: 546sdhjdf

key-password: sdjkasl465sd

keyAlias: xmarketkey

enabled: true复制代码

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 //查看证书复制代码

第60行有其配置,通过org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1整合

注解对复杂操作也越来越好,如插入之后返回id值(89行)

需要在application.yml中配置宏文件位置,如velocimacro.library: VM_global_library.vm。

将spring.datasource.initialize设置为true; spring.datasource.schema指向创建数据库和表的sql文件,如classpath:import.sql;spring.datasource.data指向初始数据sql文件

server:

compression:

min-response-size: 512 #压缩文件最小大小(kb)

enabled: true #是否压缩

mime-types: text/html,text/css,text/javascript,application/javascript,image/gif,image/png,image/jpg #要压缩的文件格式复制代码

加密过程: 获取图片md5值--md5的16个字节加到图片最末尾。验证过程: 取出图片末尾16个字节--并删除图片末尾16个字节--重新获取图片的md5值--两个md5进行比对。这里只是简单实现,代码没有进行优化

前端

包括getters,mutations,actions等,components下的组件中有其具体调用方式。

将图片放到static文件夹下,npm run dev时node的server会将static目录加入到服务器中,url如/static/img/wood.jpg即可访问

android的前端实现,项目中的小实现 (安卓, javaweb, 前端)相关推荐

  1. vue项目中的小知识--快捷键-vue插件版本号--vscode插件等

    vue项目中的小知识--快捷键等 0 版本号 1 代码片段的获取: 2 vscode中一些常用扩展 3 进入另一个文件夹,返回上一级 4查看Vue的版本和Vue/CLI的版本 5 --save-dev ...

  2. 前端React项目中实现萤石云ezuikit摄像头的播放与控制

    最近要在react项目中使用萤石云提供的ezuikit库来接入萤石云摄像头,实现远程播放.控制移动.放大缩小等功能,首先百度搜类似的需求,搜不到,只能自己采坑,登萤石云官网,看对应文档. 一.登录萤石 ...

  3. uniapp android原生,在uni-app项目中集成Android原生工程

    [TOC] # 在uni-app项目中集成Android原生工程 按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦. 经 ...

  4. ajax中async_小猿圈web前端之ajax的同步和异步有怎样的区别?

    对于ajax我们应该知道ajax是主要用来在前端页面中向服务器后端请求数据,ajax中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式,那么, ...

  5. android+jacoco多模块项目中统计子模块代码覆盖率

    上一次做了单项目的代码覆盖率统计,但是在实际的项目中,都是已模块开发为主. 研究了一下怎么去统计子模块中的代码覆盖率. 整体思路: 1:既然是多模块的代码覆盖率统计,所以子模块必须也要是用jacoco ...

  6. 前端vue3项目中百度地图的使用api及实例

    目录 一.使用百度地图的准备工作? 二.百度地图的简单Demo 三.百度地图的常用api有哪些? 1.百度地图的类型? 2.百度地图控件 一.使用百度地图的准备工作? 1.先注册百度账号 --> ...

  7. 项目中技术细节(button用法、前端操作json、 hibernate的query.setFirstResult的用法注意、struts2中日期格式化标签)

    button的用法 struts2 s:iterator 中按钮获得当前行数据,并跳转 <button id="submissionz" onclick="var ...

  8. 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)

    学习是一件非常充实的过程,特别是把自己的乐趣变成工作的时候,很多朋友就喜欢学习web前端,所以学习前端,也希望从事前端的工作,但是因为缺少实战经验,所以很多都是卡在面试这关上,下面小猿圈总结了web前 ...

  9. web前端三大主流框架_小猿圈web前端之前端的主流框架都有哪些?

    社会在不断发展,互联网更新换代也是飞速,web框架也是经历一代又一代的革新,那么当今时代什么框架是前端的主流框架呢?小猿圈web前端讲师查了一些资料,整理出当今时代比较流行的三种框架,下面说一下这三种 ...

最新文章

  1. 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)
  2. 分布式架构的对比-IBM XIV
  3. 用计算机写作文的好处,《用计算机写作文》教案
  4. 使用Jackson和Super类型令牌进行Json反序列化
  5. 添加编译宏_软件开发——编译链接
  6. linux安装pgsql源码包解压,在Linux(centos)中使用源码安装pgRouting
  7. 个人作业-软件产品案例分析
  8. 移动HTML5前端性能优化指南
  9. mysql gman do_使用MySQL UDFs来调用gearman分布式任务分发系统
  10. 《现代操作系统教程》课程课后习题及答案
  11. 内连接与外连接的区别
  12. DDoS原理、分类与防御
  13. 把小说放到mysql中_小说系统有必要把内容存到数据库不?
  14. VMware跨电脑移动Linux虚拟机
  15. 能够威慑苹果的,可能只有荣耀了
  16. A load persistent id instruction was encountered, but no persistent_load function was specified.
  17. 博途v15模拟量转换_通过实例玩转博途之信号模块参数设置及模拟量输入转换举例...
  18. 人物渲染篇(一) —— 基础卡通渲染 上
  19. jstree的属性设置
  20. 永磁同步电机控制系列

热门文章

  1. 2006-06-10 今天踢球赢了,进决赛了!!!
  2. Fragment+TabHost模仿新浪新闻布局界面
  3. 使用C#对Excel文件进行内容筛选
  4. kswapd0 引起 CPU高占用解决方法
  5. python数据预测_利用Python编写一个数据预测工具
  6. 解释型语言和编译型语言
  7. idea 配置tomcat debug模式
  8. 大数据SQL优化之数据倾斜解决案例全集
  9. ShareSDK集成新浪微博
  10. Java实现Socket5代理服务器