分类: java学习

  • Day3

    公共字段自动填充

    1). 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法

    2). 自定义切面类 AutoFillAspect,统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值

    3). 在 Mapper 的方法上加入 AutoFill 注解

    示例

    @Aspect
    @Component // 需纳入 Spring 容器管理
    public class LogAspect {
        // 切入点:拦截 com.example 包下所有 public 方法
        @Pointcut("execution(public * com.example..*(..))")
        public void logPointcut() {}
    
        // 前置通知:目标方法执行前打印日志
        @Before("logPointcut()")
        public void beforeLog(JoinPoint joinPoint) {
            System.out.println("方法执行前:" + joinPoint.getSignature().getName());
        }
    }

    技术点:枚举、注解、AOP反射

    反射:编程语言的一种能力,允许程序在运行时获取类的信息(如类名、方法、属性),并动态调用类的方法、修改属性(无需在编译期确定具体类)。

    文件上传:课程用了阿里云的OSS,我选择保存在本地方便查看。OSS感觉配置一下再封装成实体就行。不过对于图片文件的命名要做修改

    分页查询:PageHelper插件

    修改 =查询+新增

  • Day2

    Axure:进行原型设计,对于前期设计提供参考,在大二时候设计过几个,不过不够规范

    DTO:当前端提交的数据和实体类中对应的属性差别比较大时,建议使用DTO来封装数据

    由于传入参数和实体类有较大差别,所以自定义DTO类。

    VO:当后端回显数据时,有时和实体类有差距,所以需要封装一个类似的xxxVO来传给前端。

    JWT:用户提交账户密码——>后端验证通过——>生成JWT token——->保存到前端本地——>发送后端验证&解析用户信息

    ThreadLocal:ThreadLocal 并不是一个Thread,而是Thread的局部变量。 ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。

    关于几种数据的传输方式

    传递标识 / 查询信息:优先用 URL 路径或查询参数(GET 请求)。

    传递复杂 / 敏感数据:用请求体(POST/PUT 等,JSON 格式)。

    文件上传:必须用 multipart/form-data 格式(表单或 AJAX)。

    认证 / 元数据:用 HTTP 头部或 Cookie。

    本地临时数据:用 LocalStorage/ SessionStorage,需手动传递。

  • 苍穹外卖Day1

    今天学习了前端环境的搭建,服务器用的是nginx,以前一直觉得一个前端页面要什么服务器,今天才有点后知后觉他的用处(1.反向代理:对于前端的请求可以处理后转发到后端,比较安全吧。2.负载均衡:通过配置多个服务器用轮询等方式来缓解服务器的压力)

    了解了一下JWT,它应该主要是把用户数据封装起来,缓存在用户端,这样不用在多个浏览器保存用户信息,只需要进行用户信息认证就行了,以token形式传递的吗。

    swagger:可以帮助开发人员生成接口文档(通过注解的方式)但是我没写,我想apifox应该可以学习一下

    git:建立远程仓库的时候ssl证书一直找不到,我都不知道为什么,翻了好久才到文件夹里找到了,可能下载的时候没在意。

    结构

    序号名称说明
    1sky-take-outmaven父工程,统一管理依赖版本,聚合其他子模块
    2sky-common子模块,存放公共类,例如:工具类、常量类、异常类等
    3sky-pojo子模块,存放实体类、VO、DTO等
    4sky-server子模块,后端服务,存放配置文件、Controller、Service、Mapper等

    分析sky-common模块的每个包的作用:

    名称说明
    constant存放相关常量类
    context存放上下文类
    enumeration项目的枚举类存储
    exception存放自定义异常类
    json处理json转换的类
    properties存放SpringBoot相关的配置属性类
    result返回结果类的封装
    utils常用工具类

    分析sky-pojo模块的每个包的作用:

    名称说明
    Entity实体,通常和数据库中的表对应
    DTO数据传输对象,通常用于程序中各层之间传递数据
    VO视图对象,为前端展示数据提供的对象
    POJO普通Java对象,只有属性和对应的getter和setter

    分析sky-server模块的每个包的作用:

    名称说明
    config存放配置类
    controller存放controller类
    interceptor存放拦截器类
    mapper存放mapper接口
    service存放service类
    SkyApplication启动类

    加密密码

    为了用户信息安全,本次使用了MD5加密,不知道为什么弹幕都说不安全,要“加盐“,就是再生成一段密码,和原密码拼接后再计算哈希值再储存,不过我这个Level貌似用不到.