返回 随笔记录
随笔记录

六、Spring家族

博主
大约 14 分钟

六、Spring家族

范围:Spring Core、Boot、MVC、Data、Cloud、Security、事务 知识点数量:302项 返回总目录


6.1 Spring Core

6.1.1 IoC容器

  • 601. Bean生命周期 - 掌握实例化、属性注入、初始化、销毁全过程
  • 602. Bean作用域 - 掌握singleton、prototype、request、session、application
  • 603. Bean装配方式 - 掌握XML、注解、Java Config三种方式
  • 604. @ComponentScan - 掌握组件扫描,理解includeFilter/excludeFilter
  • 605. @Configuration - 掌握配置类,理解CGLIB代理
  • 606. @Bean - 掌握Bean定义,理解name/initMethod/destroyMethod
  • 607. @Autowired注入 - 掌握按类型注入,理解required属性
  • 608. @Qualifier - 掌握按名称注入,理解消除歧义
  • 609. @Primary - 掌握优先Bean,理解默认选择
  • 610. @Value - 掌握属性注入,理解SpEL表达式
  • 611. @Resource - 掌握JSR-250注入,理解name/type属性
  • 612. 循环依赖 - 掌握三级缓存解决,理解提前暴露引用
  • 613. BeanFactory - 掌握底层容器,理解延迟加载
  • 614. ApplicationContext - 掌握高级容器,理解事件/国际化/资源
  • 615. BeanPostProcessor - 掌握后置处理器,理解AOP实现基础
  • 616. BeanFactoryPostProcessor - 掌握工厂后置处理器,理解属性替换
  • 617. @Import - 掌握导入配置,理解ImportSelector/ImportBeanDefinitionRegistrar
  • 618. @Lazy - 掌握延迟初始化,理解单例注入原型
  • 619. @DependsOn - 掌握依赖顺序,理解启动顺序控制
  • 620. @Scope - 掌握作用域定制,理解自定义Scope

6.1.2 AOP

  • 621. AOP概念 - 掌握切面、连接点、通知、切点、引入、织入
  • 622. @Aspect - 掌握切面定义,理解@Component配合
  • 623. @Before/@After/@Around - 掌握通知类型,理解执行顺序
  • 624. @Pointcut - 掌握切点表达式,理解execution/within/args
  • 625. AOP代理机制 - 理解JDK vs CGLIB,掌握proxyTargetClass
  • 626. AOP执行顺序 - 掌握多个切面的@Order,理解责任链
  • 627. AOP应用场景 - 掌握日志、事务、权限、性能监控
  • 628. @AfterReturning/@AfterThrowing - 掌握返回值/异常通知
  • 629. 切点表达式语法 - 掌握&&/||/!组合,理解通配符
  • 630. AOP性能影响 - 理解代理开销,掌握适用场景
  • 631. 引入增强 - 掌握@DeclareParents,理解接口引入
  • 632. AOP源码原理 - 理解AnnotationAwareAspectJAutoProxyCreator

6.2 Spring Boot

6.2.1 自动配置

  • 633. @SpringBootApplication - 掌握组合注解(@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan)
  • 634. 自动配置原理 - 掌握@EnableAutoConfiguration,理解自动配置类加载
  • 635. spring.factories - 掌握SPI扩展,理解AutoConfiguration.imports(3.0+)
  • 636. @Conditional - 掌握条件装配,理解派生注解
  • 637. 自定义Starter - 掌握自动配置类编写,理解starter结构
  • 638. 配置属性绑定 - 掌握@ConfigurationProperties,理解松散绑定
  • 639. 配置优先级 - 掌握application.properties vs 环境变量 vs 命令行参数
  • 640. Profile配置 - 掌握多环境配置,理解@Profile
  • 641. @ConditionalOnClass - 掌握类存在条件
  • 642. @ConditionalOnProperty - 掌握属性条件,理解matchIfMissing
  • 643. @ConditionalOnMissingBean - 掌握Bean缺失条件
  • 644. 自动配置排除 - 掌握exclude/excludeName
  • 645. 配置元数据 - 掌握additional-spring-configuration-metadata.json

6.2.2 常用功能

  • 646. 日志配置 - 掌握Logback配置,理解日志级别和输出格式
  • 647. 异常处理 - 掌握@ControllerAdvice和@ExceptionHandler
  • 648. 过滤器与拦截器 - 掌握Filter和HandlerInterceptor,理解执行顺序
  • 649. 事件监听 - 掌握ApplicationListener和@EventListener
  • 650. CommandLineRunner - 掌握启动任务,理解执行顺序
  • 651. 异步任务 - 掌握@Async和@EnableAsync,理解线程池配置
  • 652. 定时任务 - 掌握@Scheduled,理解cron/fixedRate/fixedDelay
  • 653. 缓存抽象 - 掌握@Cacheable/@CachePut/@CacheEvict
  • 654. 邮件发送 - 掌握JavaMail集成
  • 655. 任务执行器 - 掌握TaskExecutor,理解ThreadPoolTaskExecutor
  • 656. 重试机制 - 掌握@Retryable,理解退避策略
  • 657. 国际化 - 掌握MessageSource,理解LocaleResolver

6.2.3 Actuator监控

  • 658. Actuator端点 - 掌握health、info、metrics、env、beans
  • 659. 自定义指标 - 掌握MeterRegistry,理解Counter/Gauge/Timer
  • 660. 健康检查 - 掌握HealthIndicator,理解CompositeHealthIndicator
  • 661. 安全保护 - 掌握Actuator安全配置,理解端点暴露控制
  • 662. Prometheus集成 - 掌握指标暴露,理解Micrometer
  • 663. 自定义端点 - 掌握@Endpoint注解,理解读写操作
  • 664. HTTP Trace - 掌握请求追踪,理解HttpTraceRepository
  • 665. Startup端点 - 掌握启动分析,理解ApplicationStartup

6.3 Spring MVC

6.3.1 请求处理

  • 666. DispatcherServlet - 掌握前端控制器,理解请求处理流程
  • 667. @RestController - 掌握REST控制器,理解@ResponseBody组合
  • 668. @RequestMapping - 掌握URL映射,理解path/method/params/headers
  • 669. @GetMapping/@PostMapping - 掌握HTTP动词映射
  • 670. @PathVariable - 掌握路径变量,理解正则表达式约束
  • 671. @RequestParam - 掌握查询参数,理解required/defaultValue
  • 672. @RequestBody - 掌握JSON绑定,理解HttpMessageConverter
  • 673. @ResponseBody - 掌握响应体,理解返回值处理
  • 674. ResponseEntity - 掌握完整响应控制,理解HttpStatus
  • 675. 参数解析器 - 掌握HandlerMethodArgumentResolver,理解自定义解析
  • 676. 返回值处理器 - 掌握HandlerMethodReturnValueHandler
  • 677. 内容协商 - 掌握ContentNegotiationManager,理解Accept头部
  • 678. 消息转换器 - 掌握HttpMessageConverter,理解Jackson配置

6.3.2 参数验证

  • 679. @Valid/@Validated - 掌握参数校验,理解分组校验
  • 680. @NotNull/@NotEmpty/@NotBlank - 掌握常用校验注解
  • 681. 自定义校验器 - 掌握ConstraintValidator,理解isValid实现
  • 682. 分组校验 - 掌握ValidationGroup,理解接口分组
  • 683. 校验结果处理 - 掌握BindingResult,理解FieldError
  • 684. 级联校验 - 掌握@Valid嵌套对象校验
  • 685. 方法级校验 - 掌握@Validated类级别,理解方法参数校验
  • 686. 自定义校验消息 - 掌握ValidationMessages.properties

6.3.3 拦截器与过滤器

  • 687. HandlerInterceptor - 掌握preHandle/postHandle/afterCompletion
  • 688. WebMvcConfigurer - 掌握配置接口,理解addInterceptors
  • 689. CORS配置 - 掌握@CrossOrigin,理解全局CORS配置
  • 690. 静态资源 - 掌握ResourceHandler,理解classpath:/static/
  • 691. 视图解析 - 掌握ViewResolver,理解InternalResourceViewResolver
  • 692. 文件上传 - 掌握MultipartFile,理解multipart配置
  • 693. Filter vs Interceptor - 理解生命周期和执行顺序区别
  • 694. Servlet Listener - 掌握ServletContextListener
  • 695. 字符编码 - 掌握CharacterEncodingFilter

6.3.4 高级特性

  • 696. 全局异常处理 - 掌握@ControllerAdvice,理解@ExceptionHandler优先级
  • 697. REST版本控制 - 掌握URL/Header/参数版本控制
  • 698. API文档 - 掌握OpenAPI/Swagger集成
  • 699. 请求限流 - 掌握Filter级别限流
  • 700. 请求日志 - 掌握ContentCachingRequestWrapper
  • 701. 异步请求 - 掌握DeferredResult/Callable,理解超时处理
  • 702. SSE服务端推送 - 掌握SseEmitter

6.4 Spring Data

6.4.1 JPA

  • 703. @Entity - 掌握实体定义,理解@EntityListeners
  • 704. @Id/@GeneratedValue - 掌握主键生成,理解IDENTITY/SEQUENCE/TABLE
  • 705. @OneToMany/@ManyToOne - 掌握关联映射,理解外键维护
  • 706. @ManyToMany - 掌握多对多,理解中间表
  • 707. @JoinColumn - 掌握外键映射,理解@JoinTable
  • 708. Repository接口 - 掌握CRUD接口,理解JpaRepository
  • 709. 方法命名查询 - 掌握findByXxx,理解And/Or/Between/Like
  • 710. @Query - 掌握JPQL和NativeQuery,理解countQuery
  • 711. 分页排序 - 掌握Pageable和Sort,理解Page对象
  • 712. Specification - 掌握动态查询,理解CriteriaBuilder
  • 713. @EntityGraph - 掌握实体图,理解fetch图
  • 714. 乐观锁 - 掌握@Version,理解并发控制
  • 715. 审计功能 - 掌握@CreatedDate/@LastModifiedDate
  • 716. 批量操作 - 掌握JDBC batch_size配置
  • 717. N+1问题解决 - 掌握JOIN FETCH、@EntityGraph、BatchSize

6.4.2 Redis集成

  • 718. RedisTemplate - 掌握Redis操作,理解opsForValue/opsForHash
  • 719. StringRedisTemplate - 掌握字符串操作,理解序列化差异
  • 720. @Cacheable - 掌握缓存注解,理解key生成策略
  • 721. Redis序列化 - 掌握Jackson2JsonRedisSerializer,理解GenericJackson2JsonRedisSerializer
  • 722. Lua脚本 - 掌握原子操作,理解RedisScript
  • 723. Redis管道 - 掌握批量操作,理解executePipelined
  • 724. 分布式锁 - 掌握Redisson,理解看门狗机制
  • 725. 缓存穿透 - 掌握布隆过滤器+空值缓存
  • 726. 缓存击穿 - 掌握互斥锁+逻辑过期
  • 727. 缓存雪崩 - 掌握随机过期时间+多级缓存

6.4.3 MongoDB集成

  • 728. MongoTemplate - 掌握MongoDB操作
  • 729. @Document - 掌握文档映射
  • 730. GridFsTemplate - 掌握大文件存储

6.5 Spring Cloud

6.5.1 服务注册与发现

  • 731. Nacos - 掌握服务注册和配置中心,理解AP/CP模式
  • 732. Eureka - 掌握服务发现(历史),理解自我保护机制
  • 733. Consul - 掌握服务发现和健康检查,理解KV存储
  • 734. Zookeeper - 掌握服务注册,理解临时节点
  • 735. 服务下线 - 掌握优雅停机,理解@PreDestroy
  • 736. 健康检查 - 掌握自定义健康指标,理解Actuator集成
  • 737. 服务元数据 - 掌握版本/权重/区域标签
  • 738. 注册中心对比 - 理解CAP选择,掌握场景适配

6.5.2 负载均衡

  • 739. Ribbon - 掌握客户端负载均衡(历史),理解IRule
  • 740. LoadBalancer - 掌握Spring Cloud LoadBalancer,理解ReactiveLoadBalancer
  • 741. 负载均衡策略 - 掌握轮询、随机、权重、最少连接
  • 742. 重试机制 - 掌握Spring Retry,理解@Retryable
  • 743. OpenFeign - 掌握声明式HTTP客户端,理解编码器/解码器
  • 744. Feign拦截器 - 掌握RequestInterceptor,理解Token传递
  • 745. Feign降级 - 掌握FallbackFactory,理解异常感知
  • 746. Feign超时 - 掌握ConnectTimeout/ReadTimeout配置
  • 747. Feign日志 - 掌握Logger.Level,理解FULL/BASIC/HEADERS/NONE
  • 748. Feign压缩 - 掌握请求/响应压缩

6.5.3 配置中心

  • 749. Nacos Config - 掌握动态配置,理解dataId/group
  • 750. 配置刷新 - 掌握@RefreshScope,理解配置热更新
  • 751. 配置分组 - 掌握多环境隔离,理解Namespace
  • 752. 配置加密 - 掌握Jasypt,理解ENC()加密
  • 753. Apollo配置中心 - 掌握携程配置中心,理解灰度发布
  • 754. 配置优先级 - 理解多配置源覆盖规则
  • 755. 配置回滚 - 掌握历史版本恢复
  • 756. 配置监听 - 掌握ConfigChangeListener

6.5.4 服务治理

  • 757. Sentinel - 掌握限流熔断,理解资源定义
  • 758. 限流规则 - 掌握QPS和线程数限流,理解流控效果
  • 759. 熔断降级 - 掌握异常比例和慢调用,理解熔断恢复
  • 760. 系统自适应 - 掌握系统保护,理解Load自适应
  • 761. 网关Gateway - 掌握路由和过滤器,理解Predicate/Filter
  • 762. 链路追踪 - 掌握Sleuth + Zipkin(3.0+Micrometer Tracing)
  • 763. 消息驱动 - 掌握Stream,理解Binder
  • 764. 服务降级 - 掌握@SentinelResource,理解blockHandler
  • 765. 热点限流 - 掌握参数限流,理解热点参数统计
  • 766. 网关限流 - 掌握RequestRateLimiter,理解Redis+Lua
  • 767. 网关鉴权 - 掌握全局过滤器,理解Token验证
  • 768. 灰度路由 - 掌握Header路由,理解版本匹配

6.6 Spring Security

6.6.1 认证

  • 769. 认证流程 - 掌握AuthenticationManager和ProviderManager
  • 770. UserDetailsService - 掌握用户加载,理解UserDetails
  • 771. PasswordEncoder - 掌握密码加密,理解BCrypt/PBKDF2
  • 772. 表单登录 - 掌握FormLogin,理解登录页面配置
  • 773. 记住我 - 掌握RememberMe,理解Token/PersistentToken
  • 774. 匿名认证 - 掌握AnonymousAuthentication,理解匿名访问
  • 775. 认证成功/失败处理 - 掌握AuthenticationSuccessHandler/FailureHandler
  • 776. 自定义认证 - 掌握AuthenticationProvider
  • 777. 多因素认证 - 掌握MFA实现

6.6.2 授权

  • 778. 基于URL授权 - 掌握requestMatchers,理解路径匹配
  • 779. 基于角色授权 - 掌握hasRole/hasAuthority,理解ROLE_前缀
  • 780. 基于方法授权 - 掌握@PreAuthorize/@PostAuthorize
  • 781. 自定义授权 - 掌握AccessDecisionManager,理解投票器
  • 782. CORS与CSRF - 掌握安全配置,理解CSRF Token
  • 783. 权限表达式 - 掌握SpEL表达式,理解#和@
  • 784. 动态权限 - 掌握FilterSecurityInterceptor
  • 785. 会话管理 - 掌握SessionManagementFilter,理解并发控制
  • 786. 安全上下文 - 掌握SecurityContextHolder,理解ThreadLocal

6.6.3 OAuth2与JWT

  • 787. OAuth2授权码模式 - 掌握Authorization Code,理解PKCE
  • 788. OAuth2密码模式 - 掌握Password Grant(历史)
  • 789. OAuth2客户端模式 - 掌握Client Credentials
  • 790. JWT原理 - 掌握Token结构(Header+Payload+Signature)
  • 791. JWT集成 - 掌握jjwt库/nimbus-jose-jwt
  • 792. Token刷新 - 掌握Refresh Token,理解Token轮换
  • 793. SSO单点登录 - 掌握统一认证,理解CAS/OAuth2 SSO
  • 794. 权限动态加载 - 掌握动态权限,理解RBAC/ABAC
  • 795. JWT失效 - 掌握黑名单机制,理解Redis存储
  • 796. Authorization Server - 掌握Spring Authorization Server
  • 797. Resource Server - 掌握资源服务配置

6.7 Spring事务

6.7.1 事务基础

  • 798. @Transactional - 掌握事务注解,理解proxyMode
  • 799. 传播行为 - 掌握REQUIRED、REQUIRES_NEW、NESTED、SUPPORTS、NOT_SUPPORTED、NEVER、MANDATORY
  • 800. 隔离级别 - 掌握READ_UNCOMMITTED/READ_COMMITTED/REPEATABLE_READ/SERIALIZABLE
  • 801. 超时与只读 - 掌握timeout和readOnly,理解优化提示
  • 802. 事务回滚 - 掌握rollbackFor/noRollbackFor
  • 803. 事务管理器 - 掌握PlatformTransactionManager,理解DataSourceTransactionManager
  • 804. 编程式事务 - 掌握TransactionTemplate
  • 805. 嵌套事务 - 掌握Savepoint,理解NESTED传播
  • 806. 多数据源事务 - 掌握ChainedTransactionManager

6.7.2 事务失效

  • 807. 自调用失效 - 掌握同类方法调用,理解代理机制
  • 808. 非public方法失效 - 掌握可见性要求
  • 809. 异常捕获失效 - 掌握异常传播,理解rollbackFor配置
  • 810. 多线程失效 - 掌握线程隔离,理解SecurityContext传播
  • 811. AopContext - 掌握getCurrentProxy,理解exposeProxy
  • 812. 事务同步 - 掌握TransactionSynchronization,理解afterCommit
  • 813. 事务失效解决 - 掌握自注入/ApplicationContext.getBean/AopContext

6.7.3 事务进阶

  • 814. 事务监听 - 掌握@TransactionalEventListener,理解BEFORE/AFTER_COMMIT
  • 815. 事务边界 - 掌握Service层事务,理解Controller层不应有事务
  • 816. 长事务问题 - 掌握事务超时,理解连接占用
  • 817. 分布式事务 - 掌握Seata集成,理解AT/TCC模式
  • 818. 事务与缓存 - 掌握@Cacheable与事务顺序,理解order属性
  • 819. 只读事务优化 - 掌握readOnly=true,理解MySQL优化

进度统计

  • 领域:Spring家族
  • 知识点总数:302项
  • 已完成:0项
  • 待完成:302项

实战项目建议

  • 项目1:自定义Spring Boot Starter - 实现Redis限流Starter,包含自动配置、属性绑定、条件装配
  • 项目2:RBAC权限系统 - 基于Spring Security实现角色权限管理,包含动态权限加载
  • 项目3:微服务电商系统 - 使用Spring Cloud Alibaba构建完整微服务架构

常见面试问题

  • Spring Bean的生命周期?三级缓存如何解决循环依赖?
  • @Transactional什么情况下会失效?如何解决?
  • Spring Boot自动配置原理?如何自定义Starter?
  • Spring MVC请求处理流程?DispatcherServlet做了什么?
  • Spring AOP的底层实现?JDK动态代理和CGLIB的区别?

推荐学习资源

  • 书籍:《Spring实战》《Spring源码深度解析》《Spring Cloud微服务实战》
  • 视频:极客时间《Spring Boot + Vue3 全栈开发》《Spring Cloud Alibaba微服务实战》
  • 官方:Spring官方文档、Spring Guides

返回总目录

知识点测试

读完文章了?来测试一下你对知识点的掌握程度吧!

评论区

使用 GitHub 账号登录后即可发表评论,支持 Markdown 格式。

如果评论系统无法加载,请确保:

  • 您的网络可以访问 GitHub
  • giscus GitHub App 已安装到仓库
  • 仓库已启用 Discussions 功能