一、项目搭建:IOC与DI的基石作用

技术核心:Spring的IOC(控制反转)和DI(依赖注入)是整个框架的根基。
实现方式

  1. XML配置或注解:通过applicationContext.xml定义Bean(如数据源),或用@Component@Service等注解自动扫描类
  2. 依赖注入:在Service层用@Autowired注入DAO层对象,无需手动new对象
<!-- XML配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="url" value="jdbc:mysql://localhost:3306/mall"/>
</bean>
// Service层通过DI获取DAO
@Service
public class OrderService {
    @Autowired  // DI自动注入
    private OrderDao orderDao;
}

二、请求处理:AOP与拦截器的协作

技术组合

  1. 拦截器(Interceptor):处理权限校验、日志记录
  2. 过滤器(Filter):处理字符编码、XSS攻击防护
  3. AOP(面向切面):统一处理日志、事务、性能监控

示例:订单支付接口的权限校验

// 拦截器校验JWT
public class AuthInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        String token = request.getHeader("Authorization");
        if (!JwtUtil.verify(token)) {  // JWT校验
            throw new UnauthorizedException("Token无效");
        }
        return true;
    }
}

// AOP记录接口耗时
@Aspect
@Component
public class LogAspect {
    @Around("execution(* com.mall.controller.*.*(..))")
    public Object logTime(ProceedingJoinPoint joinPoint) throws Throwable {
        long start = System.currentTimeMillis();
        Object result = joinPoint.proceed();
        System.out.println("接口耗时:" + (System.currentTimeMillis() - start));
        return result;
    }
}

三、数据安全:JWT与阿里云OSS整合

技术点

  1. JWT(JSON Web Token):无状态身份认证,解决Session共享问题
  2. 阿里云OSS:存储用户上传的图片/视频

订单支付流程整合

// Controller层处理支付
@PostMapping("/pay")
public Result payOrder(@RequestBody OrderDTO orderDTO, @RequestHeader String token) {
    Long userId = JwtUtil.getUserId(token);  // 解析JWT获取用户ID
    orderService.createOrder(userId, orderDTO);
    return Result.success("支付成功");
}

// OSS上传商品图片
public String uploadImage(MultipartFile file) {
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    ossClient.putObject(bucketName, "product/" + file.getOriginalFilename(), file.getInputStream());
    return "https://oss.mall.com/product/" + file.getOriginalFilename();
}

四、业务核心:事务管理与全局异常

关键技术

  1. 声明式事务:通过@Transactional保证订单与库存操作的原子性
  2. 全局异常处理:统一捕获SQLExceptionUnauthorizedException等异常

订单创建服务示例

@Service
public class OrderService {
    @Autowired
    private InventoryDao inventoryDao;

    @Transactional(rollbackFor = Exception.class)  // 事务管理
    public void createOrder(Long userId, OrderDTO orderDTO) {
        // 扣减库存
        inventoryDao.reduceStock(orderDTO.getProductId(), orderDTO.getQuantity());
        // 创建订单
        orderDao.insert(new Order(userId, orderDTO));
        // 模拟异常(测试事务回滚)
        if (orderDTO.getAmount() < 0) {
            throw new BusinessException("金额异常");  // 触发全局异常处理
        }
    }
}

// 全局异常处理器
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(BusinessException.class)
    public Result handleBusinessException(BusinessException e) {
        return Result.error(500, e.getMessage());
    }
}

五、部署优化:OSS加速与监控

扩展技术

  1. OSS+CDN加速:商品图片通过CDN分发
  2. Prometheus监控:监控接口QPS、数据库连接池状态

配置示例

# application-oss.properties
aliyun.oss.endpoint=oss-cn-shanghai.aliyuncs.com
aliyun.oss.bucketName=mall-product

六、技术全景图与学习路径

技术模块 核心技术点 应用场景
核心框架 Spring IOC/AOP、MyBatis 对象管理、SQL操作
安全认证 JWT、拦截器 用户登录、接口权限
数据存储 MySQL事务、阿里云OSS 订单一致性、文件存储
异常处理 @ControllerAdvice 统一错误响应
性能优化 过滤器、AOP日志 XSS防护、接口监控

学习建议

  1. 从Spring Boot+MyBatis Plus入手,快速搭建CRUD项目
  2. 逐步集成JWT和OSS,实现完整业务流
  3. 通过AOP+拦截器深化框架理解
  4. 参考电商管理系统和旅游平台实战项目
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐