返回 随笔记录
六、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 功能