第三天
1. 公共字段自动填充
问题:代码冗余,不利于后期维护
通过切面统一赋值。
- 自定义注解AutoFill,用于标识需要进行公共字段自动填充的方法。
- 自定义切面类AutoFillAspect,统一拦截加入了AutoFill注解的方法,通过反射为公共字段赋值。
- 在Mapper的方法上加入AutoFill注解。
使用技术点:枚举,注解,AOP,反射
1. 创建注解
@Target(ElementType.METHOD) //注解只能加在什么地方(方法上)
@Retention(RetentionPolicy.RUNTIME) //定义注解固定写法
public @interface AutoFill {
//枚举,数据库操作类型:UPDATE, INSERT
OperationType value();
}
自定义注解是一个标识符,说明哪一个方法需要扩展,所有它不需要有任何实现。
@annotation来说明,如果某一个目标方法上它书写了MethodExporter这个自定义注解的化,就执行下面的方法,来对方法进行增强。
2. Spring AOP
Spring AOP可以帮助我们Java在不修改源代码的前提下实现功能增强,其底层实现基于Java动态代理或者CGLIB。
- 切面
- 切入点
- 通知
3. 反射
2. 新增菜品
1 需求分析
2. 根据类型查询分类
拷贝进来代码的话它可能不会自动编译,要手动编译一下
3. 文件上传
MultipartFile接收文件
配置属性类:读取配置文件(yml)的配置项,然后封装成Java对象
配置类(@Configuration):在配置类可以定义很多@Bean的方法,可以让这些@Bean修饰的方式让spring框架加载到ioc容器中去。
4. 数据库设计(dish菜品表和dish_flavor口味表)
返回dish_id,insert语句产生的这个主键值会赋给id属性
3. 菜品分页查询
4. 删除菜品
加上@RequestParam之后可以用SpringMVC动态解析字符串。
5. 修改菜品
@RequestParam、@RequestBody、@PathVariable
链接:参考
1. @RequestParam
- 加@RequestParam注解
@RequestMapping("/user")
public String user(@RequestParam("userId") int userId) {
return "user";
}
- 不加@RequestParam注解
@RequestMapping("/user")
public String user(int userId) {
return "user";
}