08 2020 档案
摘要:一,图形验证码的用途? 1,什么是图形验证码? 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,它是用来区分用户是人类还是计算
阅读全文
摘要:一,用数据库实现权限管理要注意哪些环节? 1,需要生成spring security中user类的派生类,用来保存用户id和昵称等信息, 避免页面上显示用户昵称时需要查数据库 2,如果需要在页面上显示用户的登录信息, 需要自定义一个interceptor, 把用户的昵称等信息添加到 modeland
阅读全文
摘要:一,spring boot admin的安全环节: 1,修改context-path,默认时首页就是admin, 我们修改这个地址可以更安全 2,配置ip地址白名单,有ip限制才安全, 我们使用了spring security, 可以在防火墙中也配置上ip限制 3,登录用户有相应的role授权才能访
阅读全文
摘要:一,多模块项目的优点: 1,为什么要使用多模块项目? 相比传统的单体工程,使用Maven的多模块配置, 有如下优点: 帮助项目划分模块,鼓励重用, 防止POM变得过于庞大, 方便某个模块的构建,而不用每次都构建整个项目, 对某个模块的特殊控制更为方便 2,创建项目的流程: 先创建一个空项目multi
阅读全文
摘要:一,druid的安全保障有哪些环节要注意? 1,druid ui的访问要有ip地址限制 2,用户必须要有相应的权限才能访问druid 3,关闭重置功能 说明:stat-view-servlet.url-pattern的配置应用时会报错, 如果bug修改了,使用这个功能会更安全 说明:刘宏缔的架构森林
阅读全文
摘要:一,用cookie保存i18n信息的优点? 当开发一个web项目(非api站)时,如果把i18n的选择信息保存到cookie, 则不需要在每次发送请求时都传递所选择语言的参数, 也不需要增加header信息, 会使开发更方便更节省时间 说明:刘宏缔的架构森林是一个专注架构的博客, 网站:https:
阅读全文
摘要:一,swagger有哪些环节需要注意安全? 1,生产环境中,要关闭swagger application.properties中配置: springfox.documentation.swagger-ui.enabled=false 2,swagger使用一台专用的服务器来部署, 可以访问的ip地址
阅读全文
摘要:一,什么情况下需要展示分页和分栏的数据的文档? 分页时,页面上展示的是同一类型的列表的数据,如图: 分栏时,每行都是一个列表,而且展示的数据类型也可能不同 这也是两种常用的数据返回形式 说明:刘宏缔的架构森林是一个专注架构的博客, 网站:https://blog.imgtouch.com本文: ht
阅读全文
摘要:一,actuator有哪些环节要做安全配置? actuator是应用广泛的监控工具, 但在生产环境中使用时,需要做严格的安全保障, 避免造成信息泄露等严重的安全问题 actuator可以采取的安全措施包括以下: ip地址: 只允许来自ip地址白名单上的访问(用security) 路径:使用自定义的访
阅读全文
摘要:一,dynamic-datasource-spring-boot-starter的优势? 1,dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器 它由苞米豆团队出品,集成多数据源时非常方便 2,官方站及文档: 官方站
阅读全文
摘要:一,为什么要给shardingsphere配置多数据源? 1,shardingjdbc默认接管了所有的数据源, 如果我们有多个非分表的库时,则最多只能设置一个为默认数据库, 其他的非分表数据库不能访问 2,shardingjdbc对数据库的访问有一些限制: 官方站的说明: https://shard
阅读全文
摘要:一,为什么要使用druid数据源? 1,druid的优点 Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 但spring boot和shardingjdbc默认使用的数据库连接池是 HikariCP 如果要在shardin
阅读全文
摘要:一,什么是seata? Seata:Simpe Extensible Autonomous Transcaction Architecture, 是阿里中间件开源的分布式事务解决方案。 前身是阿里的Fescar 官方站: http://seata.io/zh-cn/ 官方代码地址: https://
阅读全文
摘要:一,dynamic-datasource-spring-boot-starter的用途? 1,dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器 它由苞米豆团队出品 2,官方站及文档: 官方站 https://myb
阅读全文
摘要:一,为什么要使用多个数据源? 1,什么情况下需要使用多个数据源? 当我们需要访问不同的数据库时,则需要配置配置多个数据源, 例如:电商的业务数据库(包括用户/商品/订单等) 和统计数据库(按月日年的订单数量/金额等的统计)通常是分开到不同的数据库 所以我们需要在应用中创建多个数据库连接池 2,通常的
阅读全文
摘要:一,什么是seata? Seata:Simpe Extensible Autonomous Transcaction Architecture, 是阿里中间件,开源的分布式事务解决方案。 前身是阿里的Fescar 官方站: http://seata.io/zh-cn/ 官方代码地址: https:/
阅读全文
摘要:一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变量加上相同的数字即可 在演示项目中使用了一个动态添加文件说明和文件域的页面, 供大家参考 2,spr
阅读全文
摘要:一,什么情况下会用到嵌套循环? 当我们展示多个分类时,每个分类下又展示出推荐的前几个商品, 这时我们需要用到嵌套循环 看一个例子: 说明:刘宏缔的架构森林是一个专注架构的博客, 网站:https://blog.imgtouch.com本文: https://blog.imgtouch.com/ind
阅读全文
摘要:一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: https://github.com/alibaba/druid/ 说明:刘宏缔的架构森林是一个专注架构的博
阅读全文
摘要:一,什么是swagger? 1, Swagger 是一个规范和完整的文档框架, 用于生成、描述、调用和可视化 RESTful 风格的 Web 服务文档 官方网站: https://swagger.io/ 2,使用swagger要注意的地方: 在生产环境中必须关闭swagger, 它本身只用于前后端工
阅读全文
摘要:一,为什么要使用多个线程池? 使用多个线程池,把相同的任务放到同一个线程池中,可以起到隔离的作用,避免有线程出错时影响到其他线程池,例如只有一个线程池时,有两种任务,下单,处理图片,如果线程池被处理图片的任务占满,影响下单任务的进行 说明:刘宏缔的架构森林是一个专注架构的博客, 网站:https:/
阅读全文
摘要:一,什么是CORS? 1,CORS(跨域资源共享)(CORS,Cross-origin resource sharing), 它是一个 W3C 标准中浏览器技术的规范, 它允许浏览器向非同一个域的服务器发送XMLHttpRequest请求, 避免了Ajax只能在同一个域的服务器下使用的限制 2,什么
阅读全文
摘要:一,为什么要更新caffeine缓存? 1,caffeine缓存的优点和缺点 生产环境中,caffeine缓存是我们在应用中使用的本地缓存, 它的优势在于存在于应用内,访问速度最快,通常都不到1ms就能做出响应, 缺点在于不方便管理,因为存在于多台负载均衡的web服务器上, 很难象管理redis缓存
阅读全文
摘要:一,zxing是什么? 1,zxing的用途 如果我们做二维码的生成和扫描,通常会用到zxing这个库, ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库。 zxing还可以实现使用手机的内置的摄像头完成条形码的扫描及解码 2,zxing官方项目地址: https://gi
阅读全文
摘要:一,为什么要限制短信验证码的发送频率? 1,短信验证码每条短信都有成本制约, 肯定不能被刷接口的乱发 而且接口被刷会影响到用户的体验, 影响服务端的正常访问, 所以既使有图形验证码等的保护, 我们仍然要限制短信验证码的发送频率 2,演示项目中我使用的数值是: 同一手机号60秒内禁止重复发送 同一手机
阅读全文
摘要:一,为什么接口站的api要使用版本号? 1,当服务端接口的功能发生改进后, 客户端如果不更新版本, 则服务端返回的功能可能不能使用, 所以在服务端功能升级后, 客户端也要相应的使用新版的服务端接口 2,注意点:不要频繁变更服务端接口站的版本 不管是新增/修改服务端功能,只要app旧版本可以兼容, 则
阅读全文
摘要:一,为什么要使用多模块? 1,结构更清晰,方便管理 如果只是一个小项目当然没有问题, 但如果功能越增越多则管理越来越复杂, 多模块可以使项目中模块间的结构分离 2,把项目划分成多个模块后, 能够方便模块的复用 例如:web/api/管理后台 都会用到一些数据表, 对数据表的封装(mapper)会是都
阅读全文