公共字段自动填充:
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、反射
AOP(面向切面编程):一种编程思想,用于解决分散在代码各处的重复逻辑(如日志、事务、权限校验),将这些 “横切逻辑” 从业务代码中抽离,单独维护。

反射:编程语言的一种能力,允许程序在运行时获取类的信息(如类名、方法、属性),并动态调用类的方法、修改属性(无需在编译期确定具体类)。
文件上传:课程用了阿里云的OSS,我选择保存在本地方便查看。OSS感觉配置一下再封装成实体就行。不过对于图片文件的命名要做修改
分页查询:PageHelper插件
// 设置分页参数(当前页、每页条数)
PageHelper.startPage(pageNum, pageSize);
// 执行查询(PageHelper 会自动拦截 SQL 并添加分页)
List<User> userList = userMapper.selectAll();
// 包装成 Page 对象,获取分页信息(总条数、总页数等)
Page<User> page = (Page<User>) userList;
// 分页信息示例
long total = page.getTotal(); // 总条数
int pages = page.getPages(); // 总页数
List<User> data = page.getResult(); // 当前页数据
修改 =查询+新增