1.配置 Spring Boot 项目
点击:start.spring.io 配置,下载好再导入项目;
或者IDEA中集成创建 Spring Initailizr
配置文件的转换网址:https://toyaml.com/
server.port=8080
server.servlet.application-display-name=first
2.项目开发准备
1.IDEA常用插件安装
free-idea-mybatis
2.Postman的安装和常用功能
3.MySQL可视化工具Sequel Pro (开源免费)
3.数据库的设计与初始化
1.导入依赖插件 spring-boot-maven-plugin
2.在 application.properties 中
server.port=8080
spring.datasource.name=imooc_mall_datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/imooc_mall?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456789
mybatis.mapper-locations=classpath:mappers/*.xml
3.导入数据库数据
4.打开数据库链路
5.配置log4j2日志文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
6.AOP打印请求个返回信息
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId></dependency>
AOP统一处理Web请求日志
@Aspect
@Component
public class WebLogAspect {
private final Logger log = LoggerFactory.getLogger(WebLogAspect.class);
@Pointcut("execution(public * com.imooc.mall.controller.*.*(..))")
public void webLog() {
}
@Before("webLog()")
public void doBefore(JoinPoint joinPoint) {
//收到请求,记录请求内容
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
log.info("URL:" + request.getRequestURL().toString());
log.info("HTTP_METHOD:" + request.getMethod());
log.info("IP:" + request.getRemoteAddr());
log.info(joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
log.info("ARGS:" + Arrays.toString(joinPoint.getArgs()));
}
@AfterReturning(returning = "res", pointcut = "webLog()")
public void doAfterReturning(Object res) throws JsonProcessingException {
//处理完请求,返回内容
log.info("RESPONSE:" + new ObjectMapper().writeValueAsString(res));
}
}
一.用户模块
- 知识点:
- 登录
- 注册
- 重名校验
- 密码加密存储
- Session 使用
- 越权校验
- 统一响应对象
- lombok
- 异常枚举
- Postman实操
- 统一异常处理
- 更新个人信息
1.自定义异常类
2.注册接口的开发
3.对数据库密码进行保护
4.登录接口的开发
保持登录状态
session 的实现方案,对用户信息保存至session中
之后的访问会先从 session 中获取用户信息,然后再执行业务逻辑
二、商品模块
- 商品分类功能,接口设置
- 参数校验
- @Valid 需要验证
- @NotNull 非空
- @Max(Value) 最大值
- @Size(max,min) 字符串长度范围限制
图片上传功能
UUID
防止重名,防止爬虫
生成规则:日期和时间、MAC地址、HashCode、随机数