发表于: 2020-01-13 23:21:55
0 1066
今天做了什么
完成文件上传到阿里云的基本功能
出现了一个bug,就是阿里云生成的软连接太长,无法在数据库中保存
然后修改了生成的软链接
深度思考
1.什么是Annotation,怎么自定义Annotation,Annotation和XML的优缺点各是什么?
Annotation是一种接口。注解其实就是添加在类、变量、方法、参数等前面的一个修饰符一个标记而已。通过Java的反射机制相关的API来访问annotation信息。相关类(框架或工具中的类)根据这些信息来决定如何使用该程序元素或改变它们的行为。
Annotation和XML优缺点:
Annotation的优点
(1)保存在class文件中,降低维护成本。
(2)无需工具支持,无需解析。
(3)编译期即可验证正确性,查错变得容易。
(4)提升开发效率。
Annotation的缺点
(1)若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用。
(2)配置项编码在 Java 文件中,可扩展性差。
xml的优点
(1)利用 xml 配置能使软件更具扩展性。例如 Spring 将 class 间的依赖配置在 xml 中,最大限度地提升应用的可扩展性。
(2)具有成熟的验证机制确保程序正确性。利用 Schema 或 DTD 可以对 xml 的正确性进行验证,避免了非法的配置导致应用程序出错。
(3)修改配置而无需变动现有程序。
xml的缺点
(1)需要解析工具或类库的支持。
(2)解析 xml 势必会影响应用程序性能,占用系统资源。
(3)编译期无法对其配置项的正确性进行验证,或要查错只能在运行期。
(4)IDE无法验证配置项的正确性。
(5)开发人员不得不同时维护代码和配置文件。
(6)配置项与代码间存在潜规则。改变了任何一方都有可能影响另外一方。
(7)配置文件过多导致管理变得困难。
2.如何调用第三方API实现图片上传?
添加第三方jar包到pom依赖 仓库没有的话自己下到本地仓库再添加依赖
定义第三方API实体bean获取第三方属性信息
编写第三方API上传工具类通过第三方Client获取属性信息之后定义图片大小等信息
定义上传接口实现类通过第三方api上传工具类进行图片上传
3.怎么用Python写一个图片迁移脚本?
不会写,但是大致逻辑应该是
拿到用户图片字段-从阿里云下载文件到服务器-把文件上传到腾讯云-生成返回链接-赋值给用户图片字段-同时删除阿里云文件
4.第三方的服务可靠吗,如果出现错误该怎么处理?
我觉得第三方的API还是看公司的,任务7出现错误捕捉错误,做短信、邮件验证码的防攻击策略,规定发送频率和发送次数。
5.怎么快速集成第三方服务组件,API和SDK的区别是什么?
API是数据接口,相当于沟通第三方服务和本身项目的桥梁,是一些预定义的函数,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
SDK由第三方服务商提供的实现软件产品某项功能的工具包,相当于集成开发环境。所有东西都备好了。
6.上传图片应该由前端或客户端直接上传到第三方存储服务,还是应该先上传到服务器,再由服务器上传到第三方?
一般是直接上传到第三方存储服务。
7.怎么实现图片防盗链,缩略图,水印等功能?
可以借助阿里云OSS的图片处理机制实现图片防盗链和缩略图水印,防盗链是指在自己的页面上展示一些并不在自己服务器上的内容。通常的做法是通过技术手段获得它人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。比较常见的是一些小站盗用大站的资源(图片、音乐、视频、软件等),对于这些小站来说,通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器。
8.为什么要使用第三方图片存储服务,好处是什么?
第三方对象存储优势:海量,安全,低成本,高可靠,数据可靠性高。可以在互联网任意位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化成本。同时也减轻了自己服务器的压力,缓解请求压力。
9.怎么样将短信发送服务抽像成公共代码,可以在多个项目中复用?
参考官方文档通过调用容联API将短信发送写成一个工具类,定义好入参和返回值,配置文件中加载连接需要的属性设置。
明天要做什么;
准备进入任务八
评论