- 博客(10)
- 收藏
- 关注
原创 Java使用独立文件服务器
应用程序中免不了要上传下载文件,实现方式由简单到复杂有很多种:最简单的,文件上传后服务端程序将文件写到服务器上一个指定的目录稍微复杂一点,我们需要和应用服务器分开的单独文件服务器再复杂一点,需要用到分布式文件存储。文件在多个文件服务器之间做冗余备份使用单独文件服务器各种方案没有好坏之分,要根据系统场景看是否适用。第一种方式非常简单,适用于一些访问量小,存储文件不多的应用程序。多数应用系统其实第二种方案就可以了。很复杂的采用第三种。选择独立文件服务要求有基本的权限控制。不做控制的话,
2021-01-11 22:26:20
1226
1
原创 Vue项目统一错误处理
统一错误处理(错误兜底)是一款好产品的基本配置。缺乏错误兜底的程序通常表现为:点击某个操作,出错之后,界面上就反应加载框一直转啊转,客户一脸迷茫的等待给人非常差的用户体验。其实最简单的处理就是给个提示,客户看到提示之后反馈问题,程序员把bug修掉就好了。具体怎么做呢?Vue项目中主要的错误来源包括:后端接口错误, 400, 404, 500常见。这个时候我们需要在axio中做统一处理。vue代码中本身逻辑错误,这个时候设置Vue的全局错误处理就可以了。省去在代码中到处写catch语句块
2020-12-31 13:42:30
10248
原创 Spring boot devtools的正确使用姿势
Spring boot程序开发中的Devtoolsr如何帮我们提高开发效率,下面一一介绍。自动重启服务使用前:改代码 -> 手动重启使用后:自动探测代码变更 -> 自动重启听起来没啥厉害的?实际上它重启快很多,原理是用了两个Classloader,具体不展开讲。自动重启只用了0.7秒!自动刷新页面 Livereload使用前:服务重启 -> 手动刷新页面 -> 看最终结果使用后:自动刷新浏览器页面此功能需要浏览器(Firefox, Chrome, Safari).
2020-12-29 12:08:57
876
原创 ant-design-vue常见问题
最近的项目使用ant-design-vue, 细节上遇到一些小问题,解决方法记下来,备以后速查。使用Message全局提示代码中的写法this.$message.success("添加成功");上面这种写法会提示 $message 为 undefined解决方法import { message } from "ant-design-vue";// 这里省略其他代码Vue.prototype.$message = message;new Vue({ router, store,
2020-12-23 18:45:29
1038
1
原创 前后端分离时间数据和格式化的问题
时间格式化是软件开发的一件小事,但是根据多年经验,这件小事上出的问题不少。而且新的程序员不断重复着老的问题。典型问题典型问题包括:前端最终显示的时间和数据库里不一样,相差一天或者8个小时对于时间格式化谁来做这件事情,前端和后端都觉得是小事,反而没人做了,或者有的地方前端做,有的地方又是后端做,出了问题扯皮系统返回的时间格式生活中不常用, 例如 2020-12-21T04:09:31.000+00:00 形式正确的设计对于时间数据,要有时区的概念相同时间点,杭州是1点04分,在东京是2点
2020-12-23 13:53:43
691
原创 Vue实现前端登录控制 - 标准做法
登录控制是各类管理系统的基础功能,实现方案也是成熟的。思路业界常规做法如下:用户登录之后,服务器返回用户的信息(用户id, 姓名,用户名)和Token。前端把这些数据写入到localStorage中。当用户打算进入受保护页面时,前端程序检查是拿到token或者用户id。如果没有,说明用户没登录,直接跳转到登录页面。如果检查通过就正常进入页面,需要从后台取数据的时候,在Request Header中带上Token, 供服务端做身份验证。对应这个思路,程序上做如下修改:第一、二 两点修改 vue
2020-12-22 22:03:48
739
原创 Springboot项目中写日志很简单
Springboot的优点就是二话不说,直接开始用,非常简便。写应用程序需要的常规功能,它都默认设置过了。例如在springboot项目中的一段测试代码中用日志输出生成的UUIDpackage com.jpin.wateraffair.utils;import org.junit.Assert;import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class UUIDGener
2020-12-16 13:31:19
1120
1
原创 3步实现SpringBoot和MyBatis集成
被SpringBoot的简单所折服,与MyBatis集成是如此简单。我使用的数据库是MySQL集成步骤引入mybatis和mysql jdbc驱动的jar包配置数据源和Mapper位置代码中使用mybatis的mapper查询数据库POM中加入jar引用<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-
2020-12-06 12:15:30
137
原创 关于一杯好咖啡的常识
都说咖啡产代码,有必要把常识了解一下苦不苦?贵不贵?根源在咖啡豆,分两大类:Arabica 和 RobustaRobusta 味道比较苦;咖啡因含量高;植株抗病性好产量高,价格便宜Arabica 和Robusta相反市面上很多是把两者混合起来卖的。咖啡豆烘焙做咖啡前要磨成粉,磨成粉之前,咖啡豆要经过烘焙,烘焙程度不一样,味道也不一样。可以脑补一下烤成碳,做出来的咖啡是啥味水最好使用矿泉水冲咖啡。咱们中国的普通饮用水里都是水厂化学用品的味道。哪种好喝喜欢什么口味完全是个人爱好
2020-12-05 17:34:21
125
原创 必须要知道的Springboot注解
冬日的暖阳照进窗户,一杯咖啡 ☕️ ,带着好心情我们一起写程序,写一个所有程序员都逃不掉的模块 – 用户登录。Springboot 实战 - 用户登录用户登录看起来是一个简单的功能,但初学不知道从哪里入手。实际项目中要考虑的事情还要多一些。我们不妨把这些都覆盖到,将这个任务分成几个阶段讲细讲透,并一一实现。阶段目标今天的目标从最基础的环境搭建开始,直到程序运行起来,看见登录页面。具体步骤包括:搭建开发环境使用Springboot创建项目写登录页面,并运行程序搭建开发环境 +开发环境
2020-11-30 12:04:37
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人