第九章 SpringCloud框架
Nacos支持服务注册发现与配置管理,基于心跳机制实现健康监测,提供分级存储模型(命名空间、组、DataId)实现多环境隔离。相比Eureka,Nacos具备更优的实时推送、更短心跳周期,并融合配置中心功能。OpenFeign结合LoadBalancer实现服务调用负载均衡,支持轮询、随机等策略。Sentinel提供流量控制、熔断降级,通过滑动窗口算法精准限流。Spring Cloud Gateway作为网关核心,实现路由匹配、断言过滤与请求处理,支持限流、鉴权、监控等功能,提升微服务架构稳定性与可维护性。(239字)
第五章 Spring框架
Spring中IOC(控制反转)将对象创建交由容器管理,实现解耦;DI(依赖注入)则自动将依赖对象注入,无需手动new。通过注解如@Service、@Autowired等声明Bean和注入依赖。Bean默认单例非线程安全,需注意并发问题。作用域可设为singleton、prototype等,生命周期包括实例化、依赖注入、初始化、销毁等阶段。循环依赖通过三级缓存解决,但构造函数循环依赖需@Lazy规避。AOP基于动态代理实现日志、事务等功能,事务通过@Transactional控制传播行为与回滚规则。
常用过滤器介绍
Spring Security通过过滤器链实现安全控制:从上下文管理、认证授权到异常处理,涵盖CSRF防护、会话控制、匿名访问等功能,各过滤器分工明确,共同保障Web应用安全。
实现权限管理的技术
权限管理技术选型需综合考量。常见方案有Apache Shiro、Spring Security与自定义ACL。Shiro轻量易用,但安全维护弱;Spring Security功能强大且安全机制完善,适合Spring生态,但配置复杂;自定义ACL契合业务但维护成本高。需根据项目规模与架构权衡选择。
ACL权限模型
ACL(访问控制列表)是一种经典的权限控制模型,通过将对象的权限直接授予用户或角色,实现多对多的权限分配。结构简单,易于实现,无需框架即可快速构建。Spring Security提供spring-security-acl支持,便于集成使用。
RememberMe基本用法
本示例通过Spring Security实现RememberMe功能,用户勾选后登录信息持久化,关闭浏览器仍可免密访问。通过`remember-me` Cookie传递令牌,实现会话保持。但存在令牌泄露风险,可通过Token持久化至数据库并增加二次校验提升安全性,保障系统稳定与用户数据安全。(238字)
OAuth2.0使用场景
A网站需打印用户存于B网站的照片时,传统方式需共享账号密码,而OAuth2只需获取临时通行令牌,按需授权、安全可控。它实现服务间资源安全共享,虽类似单点登录但本质不同:前者是系统代用户操作资源,后者是用户一次登录多处通行。Spring Security的OAuth2兼具二者能力。