冰河技术
导读
♻学习路线
  • 面试必问系列

    • 面试必问
  • 架构与模式

    • Java极简设计模式
    • 实战高并发设计模式
  • Java核心技术

    • Java8新特性
    • IOC核心技术
    • JVM调优技术
  • 容器化核心技术

    • Dockek核心技术
  • 分布式存储

    • Mycat核心技术
  • 数据库核心技术

    • MySQL基础篇
  • 服务器核心技术

    • Nginx核心技术
  • 渗透核心技术

    • 渗透实战技术
  • 底层技术
  • 源码分析
  • 基础案例
  • 实战案例
  • 面试
  • 系统架构
  • Spring6核心技术
  • 分布式事务

    • 分布式事务系列视频
  • SpringBoot
  • SpringCloudAlibaba
  • 🔥AI大模型项目

    • 一站式AI智能平台
    • AI智能客服系统
    • AI智能问答系统
    • 实战AI大模型
  • 中间件项目

    • 手写高性能Redis组件
    • 手写高性能脱敏组件
    • 手写线程池项目
    • 手写高性能SQL引擎
    • 手写高性能Polaris网关
    • 手写高性能RPC项目
  • 高并发项目

    • 分布式IM即时通讯系统(新)
    • 分布式Seckill秒杀系统
    • 实战高并发设计模式
  • 微服务项目

    • 简易电商脚手架项目
  • 手撕源码

    • 手撕Spring6源码
🌍知识星球
  • 总览

    • 《书籍汇总》
  • 出版图书

    • 《深入理解高并发编程:核心原理与案例实战》
    • 《深入理解高并发编程:JDK核心技术》
    • 《深入高平行開發:深度原理&專案實戰》
    • 《深入理解分布式事务:原理与实战》
    • 《MySQL技术大全:开发、优化与运维实战》
    • 《海量数据处理与大数据技术实战》
  • 电子书籍

    • 《实战高并发设计模式》
    • 《深入理解高并发编程(第2版)》
    • 《深入理解高并发编程(第1版)》
    • 《从零开始手写RPC框架(基础篇)》
    • 《SpringCloud Alibaba实战》
    • 《冰河的渗透实战笔记》
    • 《MySQL核心知识手册》
    • 《Spring IOC核心技术》
  • 关于自己
  • 关于学习
  • 关于职场
B站
Github
导读
♻学习路线
  • 面试必问系列

    • 面试必问
  • 架构与模式

    • Java极简设计模式
    • 实战高并发设计模式
  • Java核心技术

    • Java8新特性
    • IOC核心技术
    • JVM调优技术
  • 容器化核心技术

    • Dockek核心技术
  • 分布式存储

    • Mycat核心技术
  • 数据库核心技术

    • MySQL基础篇
  • 服务器核心技术

    • Nginx核心技术
  • 渗透核心技术

    • 渗透实战技术
  • 底层技术
  • 源码分析
  • 基础案例
  • 实战案例
  • 面试
  • 系统架构
  • Spring6核心技术
  • 分布式事务

    • 分布式事务系列视频
  • SpringBoot
  • SpringCloudAlibaba
  • 🔥AI大模型项目

    • 一站式AI智能平台
    • AI智能客服系统
    • AI智能问答系统
    • 实战AI大模型
  • 中间件项目

    • 手写高性能Redis组件
    • 手写高性能脱敏组件
    • 手写线程池项目
    • 手写高性能SQL引擎
    • 手写高性能Polaris网关
    • 手写高性能RPC项目
  • 高并发项目

    • 分布式IM即时通讯系统(新)
    • 分布式Seckill秒杀系统
    • 实战高并发设计模式
  • 微服务项目

    • 简易电商脚手架项目
  • 手撕源码

    • 手撕Spring6源码
🌍知识星球
  • 总览

    • 《书籍汇总》
  • 出版图书

    • 《深入理解高并发编程:核心原理与案例实战》
    • 《深入理解高并发编程:JDK核心技术》
    • 《深入高平行開發:深度原理&專案實戰》
    • 《深入理解分布式事务:原理与实战》
    • 《MySQL技术大全:开发、优化与运维实战》
    • 《海量数据处理与大数据技术实战》
  • 电子书籍

    • 《实战高并发设计模式》
    • 《深入理解高并发编程(第2版)》
    • 《深入理解高并发编程(第1版)》
    • 《从零开始手写RPC框架(基础篇)》
    • 《SpringCloud Alibaba实战》
    • 《冰河的渗透实战笔记》
    • 《MySQL核心知识手册》
    • 《Spring IOC核心技术》
  • 关于自己
  • 关于学习
  • 关于职场
B站
Github
  • 专栏介绍

    • 第00章:开篇:我要带你一步步调试Spring6.0源码啦!
  • 第一篇:IOC容器

    • 第01章:深度解析@Configuration注解
    • 第02章:深度解析@ComponentScan注解
    • 第03章:深度解析@Bean注解
    • 第04章:深度解析从IOC容器中获取Bean的过程
    • 第05章:深度解析@Import注解
    • 第06章:深度解析@PropertySource注解
    • 第07章:深度解析@DependsOn注解
    • 第08章:深度解析@Conditional注解
    • 第09章:深度解析@Lazy注解
    • 【付费】 第10章:深度解析@Component注解(含@Repository、@Service和@Controller)
    • 【付费】 第11章:深度解析@Value注解
    • 【付费】 第12章:深度解析@Autowired注解
    • 【付费】 第13章:深度解析@Qualifier注解
    • 【付费】 第14章:深度解析@Resource注解
    • 【付费】 第15章:深度解析@Inject注解
    • 【付费】 第16章:深度解析@Primary注解
    • 【付费】 第17章:深度解析@Scope注解
    • 【付费】 第18章:深度解析@PostConstruct注解与@PreDestroy注解
    • 【付费】 第19章:深度解析@Profile注解
    • 【付费】第20章:深度解析循环依赖(史上最全)
    • 【付费】第21章:深度解析事件监听机制
  • 第二篇:AOP切面

    • 【付费】第22章:AOP切面型注解实战
    • 【付费】第23章:深度解析@EnableAspectJAutoProxy注解
    • 【付费】第24章:深度解析切入点表达式
    • 【付费】第25章:深度解析构建AOP拦截器链的流程
    • 【付费】第26章:深度解析调用通知方法的流程
    • 【付费】第27章:深度解析@DeclareParents注解
    • 【付费】第28章:@EnableLoadTimeWeaving注解
  • 第三篇:声明式事务

    • 【付费】第29章:Spring事务概述与编程实战
    • 【付费】第30章:深度解析Spring事务三大接口
    • 【付费】第31章:深度解析Spring事务隔离级别与传播机制
    • 【付费】第32章:深度解析@EnableTransactionManagement注解
    • 【付费】第33章:深度解析@Transactional注解
    • 【付费】第34章:深度解析Spring事务的执行流程
    • 【付费】第35章:深度解析Spring底层事务传播机制源码
    • 【付费】第36章:深度解析@TransactionEventListener注解
    • 【付费】第37章:七大场景深度分析Spring事务嵌套最佳实践
    • 【付费】第38章:深度解析Spring事务失效的八大场景
  • 第四篇:AOT预编译

    • 第39章:AOT预编译技术概述
    • 【付费】第40章:手动构建Native Image
    • 【付费】第41章:Maven构建Native Image
  • 第五篇:SpringMVC

    • 【付费】第42章:注解型SpringMVC通用SpringBoot启动模型设计与实现
    • 【付费】第43章:深度解析@Controller注解
    • 【付费】第44章:深度解析@RestController注解
    • 【付费】第45章:深度解析@RequestMapping注解
    • 【付费】第46章:深度解析@RequestParam注解
    • 【付费】第47章:深度解析@PathVariable注解
    • 【付费】第48章:深度解析@RequestBody注解
    • 【付费】第49章:深度解析@RequestHeader注解
    • 【付费】第50章:深度解析@CookieValue注解
    • 【付费】第51章:深度解析@ModelAttribute注解
    • 【付费】第52章:深度解析@ExceptionHandler注解
    • 【付费】第53章:深度解析@InitBinder注解
    • 【付费】第54章:深度解析@ControllerAdvice注解
    • 【付费】第55章:深度解析@RequestAttribute注解
    • 【付费】第56章:深度解析@SessionAttribute注解
    • 【付费】第57章:深度解析@SessionAttributes注解
    • 【付费】第58章:深度解析@ResponseBody注解
    • 【付费】第59章:深度解析@CrossOrigin注解
  • 作业篇

    • 作业:专栏整体作业

《Spring核心技术》作业:专栏整体作业

作者:冰河
星球:http://m6z.cn/6aeFbs
博客:https://binghe.site
文章汇总:https://binghe.site/md/all/all.html
源码地址:https://github.com/binghe001/spring-annotation-book

沉淀,成长,突破,帮助他人,成就自我。

大家好,我是冰河~~

《Spring6核心技术》专栏到目前为止,基本完成四大篇章的内容,分别是:IOC容器、AOP切面、声明式事务和AOT预编译,以Spring中的注解为核心详细阐述了Spring6中最核心的技术,并且简单介绍了Spring6中支持的AOT技术。并且在分析源码时,会配有详细的源码时序图,并且提供详细的源码执行流程。让大家从根本上彻底理解Spring6核心技术。

文章内容

专栏介绍

  • 《Spring核心技术》开篇:我要带你一步步调试Spring6.0源码啦!

第一篇:IOC容器

  • 《Spring核心技术》第1章:深度解析@Configuration注解(注解、案例与时序图部分)
  • 《Spring核心技术》第1章:深度解析@Configuration注解(源码解析部分)
  • 《Spring核心技术》第2章:深度解析@ComponentScan注解(注解、案例与时序图部分)
  • 《Spring核心技术》第2章:深度解析@ComponentScan注解(源码解析部分)
  • 《Spring核心技术》第3章:深度解析@Bean注解(注解、案例与时序图部分)
  • 《Spring核心技术》第3章:深度解析@Bean注解(源码解析部分)
  • 《Spring核心技术》第3章:深度解析@Bean注解(完善篇)
  • 《Spring核心技术》第4章:深度解析从IOC容器中获取Bean的过程
  • 《Spring核心技术》第5章:深度解析@Import注解(注解、案例与时序图部分)
  • 《Spring核心技术》第5章:深度解析@Import注解(源码解析部分)
  • 《Spring核心技术》第6章:深度解析@PropertySource注解
  • 《Spring核心技术》第7章:深度解析@DependsOn注解
  • 《Spring核心技术》第8章:深度解析@Conditional注解
  • 《Spring核心技术》第9章:深度解析@Lazy注解
  • 《Spring核心技术》第10章:深度解析@Component注解(含扩展注解)
  • 《Spring核心技术》第11章:深度解析@Value注解(含@Autowired和@Inject)
  • 《Spring核心技术》第12章:深度解析@Autowired注解
  • 《Spring核心技术》第13章:深度解析@Qualifier注解
  • 《Spring核心技术》第14章:深度解析@Resource注解
  • 《Spring核心技术》第15章:深度解析@Inject注解
  • 《Spring核心技术》第16章:深度解析@Primary注解
  • 《Spring核心技术》第17章:深度解析@Scope注解
  • 《Spring核心技术》第18章:深度解析@PostConstruct注解与@PreDestroy注解
  • 《Spring核心技术》第19章:深度解析@Profile注解
  • 《Spring核心技术》第20章:深度解析循环依赖
  • 《Spring核心技术》第21章:深度解析事件监听机制

第二篇:AOP切面

  • 《Spring核心技术》第22章:AOP切面型注解实战
  • 《Spring核心技术》第23章:深度解析@EnableAspectJAutoProxy注解
  • 《Spring核心技术》第24章:深度解析切入点表达式
  • 《Spring核心技术》第25章:深度解析构建AOP拦截器链的流程
  • 《Spring核心技术》第26章:深度解析调用通知方法的流程
  • 《Spring核心技术》第27章:深度解析@DeclareParents注解
  • 《Spring核心技术》第28章:@EnableLoadTimeWeaving注解

第三篇:声明式事务

  • 《Spring核心技术》第29章:Spring事务概述与编程实战
  • 《Spring核心技术》第30章:深度解析Spring事务三大接口
  • 《Spring核心技术》第31章:深度解析Spring事务隔离级别与传播机制
  • 《Spring核心技术》第32章:深度解析@EnableTransactionManagement注解
  • 《Spring核心技术》第33章:深度解析@Transactional注解
  • 《Spring核心技术》第34章:深度解析Spring事务的执行流程
  • 《Spring核心技术》第35章:深度解析Spring底层事务传播机制源码
  • 《Spring核心技术》第36章:深度解析@TransactionEventListener注解
  • 《Spring核心技术》第37章:七大场景深度分析Spring事务嵌套最佳实践
  • 《Spring核心技术》第38章:深度解析Spring事务失效的八大场景

第四篇:AOT预编译

  • 《Spring核心技术》第39章:AOT预编译技术概述
  • 《Spring核心技术》第40章:构建Native Image
  • 《Spring核心技术》第41章:Maven构建Native Image

第五篇:SpringMVC

  • 《Spring核心技术》第42章:注解型SpringMVC通用SpringBoot启动模型设计与实现
  • 《Spring核心技术》第43章:深度解析@Controller注解
  • 《Spring核心技术》第44章:深度解析@RestController注解
  • 《Spring核心技术》第45章:深度解析@RequestMapping注解
  • 《Spring核心技术》第46章:深度解析@RequestParam注解
  • 《Spring核心技术》第47章:深度解析@PathVariable注解
  • 《Spring核心技术》第48章:深度解析@RequestBody注解
  • 《Spring核心技术》第49章:深度解析@RequestHeader注解
  • 《Spring核心技术》第50章:深度解析@CookieValue注解
  • 《Spring核心技术》第51章:深度解析@ModelAttribute注解
  • 《Spring核心技术》第52章:深度解析@ExceptionHandler注解
  • 《Spring核心技术》第53章:深度解析@InitBinder注解
  • 《Spring核心技术》第54章:深度解析@ControllerAdvice注解
  • 《Spring核心技术》第55章:深度解析@RequestAttribute注解
  • 《Spring核心技术》第56章:深度解析@SessionAttribute注解
  • 《Spring核心技术》第57章:深度解析@SessionAttributes注解
  • 《Spring核心技术》第58章:深度解析@ResponseBody注解
  • 《Spring核心技术》第59章:深度解析@CrossOrigin注解

作业篇

《Spring核心技术》作业:专栏整体作业

作业内容

接下来,给大家留个《Spring6核心技术》专栏的作业。

篇章划分可到https://binghe.site站点下的框架源码->Spring6核心技术查看左侧菜单栏。

纸上得来终觉浅,绝知此事要躬行,学有所思,学有所用,特布置作业如下:

第1章作业

  • Spring为何在创建IOC容器时先注册ConfigurationClassPostProcessor类后置处理器的Bean定义信息,随后才是注册标注了@Configuration注解的ConfigurationAnnotationConfig配置类的Bean定义信息?
  • Spring为何先将类的Bean定义信息注册到IOC容器?为何不是直接注册实例化后的对象?
  • Spring为何是在刷新IOC容器时,实例化标注了@Configuration注解的配置类的代理对象?为何不是在创建IOC容器时就进行实例化?
  • Spring IOC容器的这种设计能给你带来哪些启示?

第2章作业

  • Spring扫描指定包的逻辑看起来挺复杂的,Spring为何会这样设计?
  • 如果使用Spring的注解开发应用程序,配置类上不标注@ComponentScans注解与@ComponentScan注解,能扫描到哪些包下的类?能将标注了@Component注解的类注入的IOC容器吗?
  • @ComponentScan注解中的basePackages属性或者value属性可以设置任意包名吗(前提是包存在)?

第3章作业

  • @Bean注解为何也是先将Bean定义信息注册到IOC容器中呢?这样做的好处是什么呢?
  • @Bean注解标注的方法被Spring解析后将Bean定义信息注册到IOC容器中后,何时会对注册的信息进行实例化呢?实例化的流程是怎样的呢?
  • Spring是如何调用@Bean注解中使用initMethod和destroyMethod属性指定的方法的?调用的流程是怎样的呢?

第4章作业

  • Spring为何会有循环依赖的问题?
  • Spring如何解决循环依赖问题?
  • Spring为何使用三级缓存解决循环依赖问题?使用二级缓存不行吗?为什么?
  • Spring中为何把创建Bean对象设计的如此复杂?你觉得是出于哪方面的考虑呢?
  • 从Spring的设计中,你学到了什么?

第5章作业

  • 在ConfigurationClassParser类的processImports()中,如果@Import注解引入的是普通类或者引入的是实现了ImportSelector接口,并且没有实现DeferredImportSelector接口的类,最终还是会执行processImports()方法的else逻辑。那么,如果@Import注解引入的是实现了ImportSelector接口,并且没有实现DeferredImportSelector接口的类,最终是如何执行else逻辑的?
  • @Import注解的三种案例在Spring底层的源码执行流程分别是什么?
  • 使用@Import注解向IOC容器中注入Bean与使用@Bean注解有什么区别?
  • 在你自己负责的项目中,会在哪些场景下使用@Import注解向IOC容器中注入Bean?
  • 你从Spring的@Import注解的设计中得到了哪些启发?

第6章作业

  • @PropertySource注解的执行流程?
  • @PropertySource注解是如何将配置文件加载到环境变量的?
  • @PropertySource注解有哪些使用场景?
  • Spring中为何会设计一个@PropertySource注解来加载配置文件?
  • 从@PropertySource注解的设计中,你得到了哪些启发?

第7章作业

  • @DependsOn注解的作用是什么?
  • @DependsOn注解是如何指定Bean的依赖顺序的?
  • 你了解过Bean的循环依赖吗?这和@DependsOn注解有关系吗?
  • 你在平时工作中,会在哪些场景下使用@DependsOn注解?
  • 你从@DependsOn注解的设计中得到了哪些启发?

第8章作业

  • @Conditional注解的作用是什么?
  • @Conditional注解有哪些使用场景?
  • @Conditional注解与@Profile注解有什么区别?
  • @Conditional注解在Spring内层的执行流程?
  • 你在平时工作中,会在哪些场景下使用@Conditional注解?
  • 你从@Conditional注解的设计中得到了哪些启发?

第9章作业

  • @Lazy注解的作用是什么?
  • @Lazy注解有哪些使用场景?
  • @Lazy注解延迟创建Bean是如何实现的?
  • @Lazy注解在Spring内部的执行流程?
  • 你在平时工作中,会在哪些场景下使用@Lazy注解?
  • 你从@Lazy注解的设计中得到了哪些启发?

第10章作业

  • @Component注解的作用是什么?
  • @Component注解有哪些使用场景?
  • @Component注解是如何将Bean注入到IOC容器的?
  • @Component注解在Spring内部的执行流程?
  • 你在平时工作中,会在哪些场景下使用@Component注解?
  • 你从@Component注解的设计中得到了哪些启发?

第11章作业

  • @Value注解的作用是什么?
  • @Value注解有哪些使用场景?
  • @Value向Bean的字段和方法注入值是如何实现的?
  • @Value注解在Spring内部的执行流程?
  • @Value注解在Spring源码中的执行流程与@Autowired注解有何区别?
  • 你在平时工作中,会在哪些场景下使用@Value注解?
  • 你从@Value注解的设计中得到了哪些启发?

第12章作业

  • @Autowired注解的作用是什么?
  • @Autowired注解有哪些使用场景?
  • @Autowired向Bean的字段和方法注入值是如何实现的?
  • @Autowired注解在Spring内部的执行流程?
  • @Autowired注解在Spring源码中的执行流程与@Autowired注解有何区别?
  • 你在平时工作中,会在哪些场景下使用@Autowired注解?
  • 你从@Autowired注解的设计中得到了哪些启发?

第13章作业

  • @Qualifier注解的作用是什么?
  • @Qualifier注解有哪些使用场景?
  • @Qualifier向Bean的字段和方法注入指定的值是如何实现的?
  • @Qualifier注解在Spring内部的执行流程?
  • 你在平时工作中,会在哪些场景下使用@Qualifier注解?
  • 你从@Qualifier注解的设计中得到了哪些启发?

第14章作业

  • @Resource注解的作用是什么?
  • @Resource注解有哪些使用场景?
  • @Resource向Bean的字段和方法注入值是如何实现的?
  • @Resource与@Autowired的区别是什么?
  • @Resource注解在Spring内部的执行流程?
  • @Resource注解在Spring源码中的执行流程与@Autowired注解有何区别?
  • 你在平时工作中,会在哪些场景下使用@Resource注解?
  • 你从@Resource注解的设计中得到了哪些启发?

第15章作业

  • @Inject注解的作用是什么?
  • @Inject注解有哪些使用场景?
  • @Inject向Bean的字段和方法注入值是如何实现的?
  • @Inject注解在Spring内部的执行流程?
  • @Inject注解在Spring源码中的执行流程与@Autowired和@Resource注解有何区别?
  • 你在平时工作中,会在哪些场景下使用@Inject注解?
  • 你从@Inject注解的设计中得到了哪些启发?

第16章作业

  • @Primary注解的作用是什么?
  • @Primary注解有哪些使用场景?
  • @Primary是如何实现Bean的优先级的?
  • @Primary注解在Spring内部的执行流程?
  • @Primary注解与@Qualifier注解有何区别?
  • 你在平时工作中,会在哪些场景下使用@Primary注解?
  • 你从@Primary注解的设计中得到了哪些启发?

第17章作业

  • @Scope注解的作用是什么?
  • @Scope注解有哪些使用场景?
  • @Scope是如何指定Bean的作用范围的?
  • @Scope注解在Spring内部的执行流程?
  • @Scope是如何创建代理类的?流程是什么?
  • 你在平时工作中,会在哪些场景下使用@Scope注解?
  • 你从@Scope注解的设计中得到了哪些启发?

第18章作业

  • @PostConstruct注解和@PreDestroy注解的作用是什么?
  • @PostConstruct注解和@PreDestroy注解有哪些使用场景?
  • @PostConstruct注解和@PreDestroy注解是如何体现Bean的生命周期的?
  • @PostConstruct注解和@PreDestroy注解在Spring内部的执行流程?
  • 你在平时工作中,会在哪些场景下使用@PostConstruct注解和@PreDestroy注解?
  • 你从@PostConstruct注解和@PreDestroy注解的设计中得到了哪些启发?

第19章作业

  • @Profile注解的作用是什么?
  • @Profile注解有哪些使用场景?
  • @Profile注解是如何做到隔离不同环境的配置的?
  • @Profile注解在Spring内部的执行流程?
  • 你在平时工作中,会在哪些场景下使用@Profile注解?
  • 你从Profile注解的设计中得到了哪些启发?

第20章作业

  • 什么是循环依赖问题?
  • 循环依赖有哪些类型?
  • 在Spring中支持哪种循环依赖?
  • 列举几种Spring不支持的循环依赖的场景,为什么不支持?
  • Spring解决循环依赖的流程是什么?
  • Spring解决缓存依赖时,二级缓存的作用是什么?
  • Spring只用二级缓存能否解决循环依赖?为什么一定要用三级缓存来解决循环依赖呢?
  • 你从Spring解决循环依赖的设计中得到了哪些启发?

第21章作业

  • 什么是Spring的事件监听机制?
  • 事件监听机制有哪些使用场景?
  • Spring的事件监听机制的流程是什么?
  • Spring基于接口实现监听机制和基于注解实现监听机制有什么区别吗?
  • 你在平时工作中,会在哪些场景下使用Spring的事件监听机制?
  • 你从Spring的事件监听机制的设计中得到了哪些启发?

第22章作业

  • AOP切面中注解提供了哪些注解,各自的作用是什么?
  • AOP切面中环绕通知的注解是如何实现的?
  • AOP切面型注解的执行顺序是什么?
  • @After、@AfterReturning、@AfterThrowing的区别是什么?
  • 你在平时工作中,会在哪些场景下使用AOP切面型注解?
  • 你从AOP切面型注解的设计中得到了哪些启发?

第23章作业

  • @EnableAspectJAutoProxy注解在Spring底层的执行流程?
  • @EnableAspectJAutoProxy注解都做了哪些工作?
  • @EnableAspectJAutoProxy注解是如何开启AOP代理的?
  • 你在平时工作中,会在哪些场景下使用@EnableAspectJAutoProxy注解开启AOP功能?
  • 你从@EnableAspectJAutoProxy注解的设计中得到了哪些启发?

第24章作业

  • 切入点表达式是如何使用的?
  • 你在实际工作中会使用哪些切入点表达式?
  • Spring解析切入点表达式的流程是什么?
  • Spring解析出切入点表达式后又是如何处理的?
  • 你从Spring解析切入点表达式的设计中得到了哪些启发?

第25章作业

  • 什么是AOP的拦截器链?
  • Spring是如何解析AOP拦截器链的?
  • Spring为何要构建AOP调用的拦截器链?
  • AOP拦截器链的调用顺序是怎样的?
  • 你从Spring构建AOP拦截器链的流程设计中得到了哪些启发?

第26章作业

  • Spring中通知的顺序?
  • 如何有效证明Spring中通知的顺序?
  • Spring底层调用通知方法时,为何会使用递归操作?
  • Spring是如何保证程序正常时,不会调用@AfterThrowing注解标注的方法?
  • Spring是如何保证程序抛异常时,不会调用@AfterReturning注解标注的方法?
  • 你从Spring调用通知方法的流程设计中得到了哪些启发?

第27章作业

  • 你使用过@DeclareParents注解吗?在哪里使用的?
  • @DeclareParents注解的作用是什么?
  • @DeclareParents注解为何能够为类添加新的功能,是如何实现的?
  • 简单说说@DeclareParents注解在Spring中的执行流程?
  • 你从@DeclareParents注解的设计中得到了哪些启发?

第28章作业

  • @EnableLoadTimeWeaving注解的使用场景?
  • @EnableLoadTimeWeaving注解是如何开启LTW的?
  • 你从@EnableLoadTimeWeaving注解的设计中得到了哪些启发?

第29章作业

  • 为何使用Spring事务就能够减少项目开发过程中维护事务的工作量?
  • Spring中事务有哪些分类?
  • Spring是如何回滚事务的?
  • Spring为何能够控制事务的提交和回滚?
  • 你从Spring事务的设计中得到了哪些启发?

第30章作业

  • Spring提供了哪些接口支持事务?
  • Spring中的事务接口各自提供了哪些功能?
  • Spring控制事务的提交和回滚是哪个接口的功能?
  • 你从Spring事务三大接口的设计中得到了哪些启发?

第31章作业

  • Spring提供了哪些事务隔离级别?
  • Spring提供了哪些事务传播机制?
  • 简单说说Spring中每种事务隔离的特性?
  • Spring中的事务传播机制各自都有哪些特点?
  • 你从Spring事务的隔离级别和传播机制的设计中得到了哪些启发?

第32章作业

  • @EnableTransactionManagement注解是如何开启事务的?
  • @EnableTransactionManagement注解与@EnableAspectJAutoProxy注解在Spring底层的执行流程有啥区别?
  • 为什么说Spring中的事务是基于AOP实现的?
  • @EnableTransactionManagement注解底层向IOC容器中注册了哪些Bean?
  • 你从Spring的@EnableTransactionManagement注解的设计中得到了哪些启发?

第33章作业

  • @Transactional注解在Spring底层都做了哪些事情?
  • 为什么@Transactional注解能够开启、提交和回滚事务?
  • @Transactional注解的事务提交了一部分,此时事务超时了会怎么处理?
  • @Transactional注解与Spring AOP中的通知注解有什么区别?
  • 你从Spring的@Transactional注解的设计中得到了哪些启发?

第34章作业

  • 简单描述下Spring在处理事务操作时的流程?
  • 为何有些场景下目标方法异常了,但是Spring会提交事务,而不是回滚事务呢?
  • Spring事务的执行流程与AOP调用拦截器链的流程有何联系和区别?
  • Spring在提交事务的过程中,哪些场景会触发回滚事务的操作?
  • Spring为何会把事务信息绑定到线程上?
  • Spring事务通常在哪些场景下会失效?为什么?
  • 你从Spring事务执行流程的设计中得到了哪些启发?

第35章作业

  • Spring提供了哪些事务传播机制?
  • 简单说说Spring中事务传播机制的源码流程?
  • Spring中的事务传播机制各自都有哪些特点?
  • 你从Spring事务传播机制的设计中得到了哪些启发?

第36章作业

  • @TransactionEventListener注解的作用是什么?
  • @TransactionEventListener注解有哪些使用场景?
  • @TransactionEventListener是如何指定监听方法的?
  • @TransactionEventListener注解在Spring内部的执行流程?
  • 你在平时工作中,会在哪些场景下使用@TransactionEventListener注解?
  • 你从@TransactionEventListener注解的设计中得到了哪些启发?

第37章作业

  • 什么是嵌套事务?
  • Spring在哪些场景下会产生嵌套事务?
  • 在嵌套事务中,哪些事务会成功,哪些事务会失败?
  • 简单说说Spring嵌套事务有哪些场景?各自执行的结果又是什么?
  • 你在平时工作中,会如何使用Spring的嵌套事务?
  • 你从Spring嵌套事务处理方式的设计中得到了哪些启发?

第38章作业

  • 在哪些场景下会导致Spring事务失效?
  • 能具体聊聊Spring在某些场景下为何会失效吗?
  • 你觉得Spring事务失效最根本的问题是什么?
  • 你在平时工作中,会采取哪些措施防止Spring的事务失效?

第42章作业

  • SpringBoot与SpringMVC有什么关系?
  • 为什么说SpringBoot只是在Spring和SpringMVC的基础上进行了简单的封装?
  • SpringMVC经过怎么样的设计可以实现SpringBoot的启动方式?
  • 自行扩展本章启动模型,实现启动时自动配置。
  • 目前大环境下,SpringBoot使用的比较多,但是,你在平时工作中,会在哪些场景下使用SpringMVC?
  • 你从本章启动模型的设计中得到了哪些启发?

第43章作业

  • @Controller注解的作用是什么?
  • @Controller注解有哪些使用场景?
  • @Controller注解是如何将Bean注入到IOC容器的?
  • @Controller注解在Spring内部的执行流程?
  • Tomcat启动时,会经历怎样的流程将@Controller注解注入到IOC容器中?
  • 你在平时工作中,会在哪些场景下使用@Controller注解?
  • 你从@Controller注解的设计中得到了哪些启发?

第44章作业

  • @RestController注解的作用是什么?
  • @RestController注解有哪些使用场景?
  • @RestController注解与@Controller注解有何区别?
  • @RestController注解是如何将Bean注入到IOC容器的?
  • @RestController注解在Spring内部的执行流程?
  • Tomcat启动时,会经历怎样的流程将@RestController注解标注的类注入到IOC容器中?
  • 你在平时工作中,会在哪些场景下使用@RestController注解?
  • 你从@RestController注解的设计中得到了哪些启发?

第45章作业

  • @RequestMapping注解的作用是什么?
  • @RequestMapping注解有哪些使用场景?
  • @RequestMapping注解是如何实现建立请求与处理方法的映射关系的?
  • @RequestMapping注解是如何实现定位处理方法的?
  • @RequestMapping注解是如何实现访问处理方法的?
  • @RequestMapping实现定位方法时,实现了哪些容错机制?
  • Tomcat启动时,@RequestMapping注解实现的映射关系是如何注册的?
  • 你在平时工作中,会在哪些场景下使用@RequestMapping注解?
  • 你从@RequestMapping注解的设计中得到了哪些启发?

第46章作业

  • @RequestParams注解的作用是什么?
  • @RequestParams注解有哪些使用场景?
  • @RequestParams注解解析参数的?
  • @RequestParams注解传到单个参数和传递Map集合的执行流程有何不同?
  • 你在平时工作中,会在哪些场景下使用@RequestParams注解?
  • 你从@RequestParams注解的设计中得到了哪些启发?

第47章作业

  • @PathVariable注解的作用是什么?
  • @PathVariable注解有哪些使用场景?
  • @PathVariable注解是如何解析参数的?
  • @PathVariable注解的参数是如何绑定的URL上的?
  • 你在平时工作中,会在哪些场景下使用@PathVariable注解?
  • 你从@PathVariable注解的设计中得到了哪些启发?

第48章作业

  • @RequestBody注解的作用是什么?
  • @RequestBody注解有哪些使用场景?
  • @RequestBody注解是如何解析参数的?
  • @RequestBody注解在Spring中的执行流程是怎样的?
  • 你在平时工作中,会在哪些场景下使用@RequestBody注解?
  • 你从@RequestBody注解的设计中得到了哪些启发?

第49章作业

  • @RequestHeader注解的作用是什么?
  • @RequestHeader注解有哪些使用场景?
  • @RequestHeader注解是如何解析参数的?
  • @RequestHeader注解的参数是如何绑定到方法中的参数上的?
  • 你在平时工作中,会在哪些场景下使用@RequestHeader注解?
  • 你从@RequestHeader注解的设计中得到了哪些启发?

第50章作业

  • @CookieValue注解的作用是什么?
  • @CookieValue注解有哪些使用场景?
  • @CookieValue注解是如何解析参数的?
  • @CookieValue注解的参数是如何绑定到方法中的参数上的?
  • 你在平时工作中,会在哪些场景下使用@CookieValue注解?
  • 你从@CookieValue注解的设计中得到了哪些启发?

第51章作业

  • @ModelAttribute注解的作用是什么?
  • @ModelAttribute注解有哪些使用场景?
  • @ModelAttribute注解是如何解析参数的?
  • @ModelAttribute注解的参数是如何绑定到方法中的参数上的?
  • 你在平时工作中,会在哪些场景下使用@ModelAttribute注解?
  • 你从@ModelAttribute注解的设计中得到了哪些启发?

第52章作业

  • @ExceptionHandler注解的作用是什么?
  • @ExceptionHandler注解有哪些使用场景?
  • @ExceptionHandler注解是如何捕获异常的?
  • @ExceptionHandler注解是如何解析参数的?
  • @ExceptionHandler注解的参数是如何绑定到方法中的参数上的?
  • 你在平时工作中,会在哪些场景下使用@ExceptionHandler注解?
  • 你从@ExceptionHandler注解的设计中得到了哪些启发?

第53章作业

  • @InitBinder注解的作用是什么?
  • @InitBinder注解有哪些使用场景?
  • @InitBinder注解是如何解析和转换参数的?
  • @InitBinder注解的参数是如何绑定到方法中的参数上的?
  • 你在平时工作中,会在哪些场景下使用@InitBinder注解?
  • 你从@InitBinder注解的设计中得到了哪些启发?

第54章作业

  • @ControllerAdvice注解的作用是什么?
  • @ControllerAdvice注解有哪些使用场景?
  • @ControllerAdvice注解是如何增强类的?
  • 你在平时工作中,会在哪些场景下使用@ControllerAdvice注解?
  • 你从@ControllerAdvice注解的设计中得到了哪些启发?

第55章作业

  • @RequestAttribute注解的作用是什么?
  • @RequestAttribute注解有哪些使用场景?
  • @RequestAttribute注解是如何解析参数的?
  • @RequestAttribute注解在转发请求时能够获取到数据,那么,在重定向时,可以获取到数据吗?为什么?
  • 你在平时工作中,会在哪些场景下使用@RequestAttribute注解?
  • 你从@RequestAttribute注解的设计中得到了哪些启发?

第56章作业

  • @SessionAttribute注解的作用是什么?
  • @SessionAttribute注解有哪些使用场景?
  • @SessionAttribute注解是如何解析参数的?
  • @SessionAttribute是如何从Session作用域获取数据的?
  • 你在平时工作中,会在哪些场景下使用@SessionAttribute注解?
  • 你从@SessionAttribute注解的设计中得到了哪些启发?

第57章作业

  • @SessionAttributes注解的作用是什么?
  • @SessionAttributes注解有哪些使用场景?
  • @SessionAttributes是如何将数据存入Session的?
  • 你在平时工作中,会在哪些场景下使用@SessionAttributes注解?
  • 你从@SessionAttributes注解的设计中得到了哪些启发?

第58章作业

  • @ResponseBody注解的作用是什么?
  • @ResponseBody注解有哪些使用场景?
  • @ResponseBody是如何响应数据的?
  • 你在平时工作中,会在哪些场景下使用@ResponseBody注解?
  • 你从@ResponseBody注解的设计中得到了哪些启发?

第59章作业

  • @CrossOrigin注解的作用是什么?
  • @CrossOrigin注解有哪些使用场景?
  • @CrossOrigin是如何解决跨域请求的?
  • 你在平时工作中,会在哪些场景下使用@CrossOrigin注解?
  • 你从@CrossOrigin注解的设计中得到了哪些启发?

作业要求

为了保证作业的质量,现对《Spring6核心技术》阶段性作业提出如下要求:

  • 认真完成作业,对于不太了解的问题,认真查询资料后自己总结。
  • 星球的小伙伴最好都完成作业,为自己而学。
  • 作业提交到星球布置的当前作业的评论区即可,我会对作业进行一一点评。
  • 作业提交时间:随时。

写在最后

最后,我想说的是:学习《Spring6核心技术》专栏一定要塌下心来,一步一个脚印,动手实践,认真思考,遇到不懂的问题,可以直接到星球发布主题进行提问。一定要记住:纸上得来终觉浅,绝知此事要躬行的道理。否则,一味的CP,或者光看不练,到头来不仅失去了学习的意义,到头来更是一无所获。

小伙伴们记住:学习是为自己学习,大家加油吧!

星球服务

加入星球,你将获得:

1.项目学习:微服务入门必备的SpringCloud Alibaba实战项目、手写RPC项目—所有大厂都需要的项目【含上百个经典面试题】、深度解析Spring6核心技术—只要学习Java就必须深度掌握的框架【含数十个经典思考题】、Seckill秒杀系统项目—进大厂必备高并发、高性能和高可用技能。

2.框架源码:手写RPC项目—所有大厂都需要的项目【含上百个经典面试题】、深度解析Spring6核心技术—只要学习Java就必须深度掌握的框架【含数十个经典思考题】。

3.硬核技术:深入理解高并发系列(全册)、深入理解JVM系列(全册)、深入浅出Java设计模式(全册)、MySQL核心知识(全册)。

4.技术小册:深入理解高并发编程(第1版)、深入理解高并发编程(第2版)、从零开始手写RPC框架、SpringCloud Alibaba实战、冰河的渗透实战笔记、MySQL核心知识手册、Spring IOC核心技术、Nginx核心技术、面经手册等。

5.技术与就业指导:提供相关就业辅导和未来发展指引,冰河从初级程序员不断沉淀,成长,突破,一路成长为互联网资深技术专家,相信我的经历和经验对你有所帮助。

冰河的知识星球是一个简单、干净、纯粹交流技术的星球,不吹水,目前加入享5折优惠,价值远超门票。加入星球的用户,记得添加冰河微信:hacker_binghe,冰河拉你进星球专属VIP交流群。

星球重磅福利

跟冰河一起从根本上提升自己的技术能力,架构思维和设计思路,以及突破自身职场瓶颈,冰河特推出重大优惠活动,扫码领券进行星球,直接立减149元,相当于5折, 这已经是星球最大优惠力度!


领券加入星球,跟冰河一起学习《SpringCloud Alibaba实战》、《手撸RPC专栏》和《Spring6核心技术》,更有已经上新的《大规模分布式Seckill秒杀系统》,从零开始介绍原理、设计架构、手撸代码。后续更有硬核中间件项目和业务项目,而这些都是你升职加薪必备的基础技能。

100多元就能学这么多硬核技术、中间件项目和大厂秒杀系统,如果是我,我会买他个终身会员!

其他方式加入星球

  • 链接 :打开链接 http://m6z.cn/6aeFbs 加入星球。
  • 回复 :在公众号 冰河技术 回复 星球 领取优惠券加入星球。

特别提醒: 苹果用户进圈或续费,请加微信 hacker_binghe 扫二维码,或者去公众号 冰河技术 回复 星球 扫二维码加入星球。

星球规划

后续冰河还会在星球更新大规模中间件项目和深度剖析核心技术的专栏,目前已经规划的专栏如下所示。

中间件项目

  • 《大规模分布式定时调度中间件项目实战(非Demo)》:全程手撸代码。
  • 《大规模分布式IM(即时通讯)项目实战(非Demo)》:全程手撸代码。
  • 《大规模分布式网关项目实战(非Demo)》:全程手撸代码。
  • 《手写Redis》:全程手撸代码。
  • 《手写JVM》全程手撸代码。

超硬核项目

  • 《从零落地秒杀系统项目》:全程手撸代码,在阿里云实现压测(已上新)。
  • 《大规模电商系统商品详情页项目》:全程手撸代码,在阿里云实现压测。
  • 其他待规划的实战项目,小伙伴们也可以提一些自己想学的,想一起手撸的实战项目。。。

既然星球规划了这么多内容,那么肯定就会有小伙伴们提出疑问:这么多内容,能更新完吗?我的回答就是:一个个攻破呗,咱这星球干就干真实中间件项目,剖析硬核技术和项目,不做Demo。初衷就是能够让小伙伴们学到真正的核心技术,不再只是简单的做CRUD开发。所以,每个专栏都会是硬核内容,像《SpringCloud Alibaba实战》、《手撸RPC专栏》和《Spring6核心技术》就是很好的示例。后续的专栏只会比这些更加硬核,杜绝Demo开发。

小伙伴们跟着冰河认真学习,多动手,多思考,多分析,多总结,有问题及时在星球提问,相信在技术层面,都会有所提高。将学到的知识和技术及时运用到实际的工作当中,学以致用。星球中不少小伙伴都成为了公司的核心技术骨干,实现了升职加薪的目标。

联系冰河

加群交流

本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “冰河” 微信(hacker_binghe),备注:星球编号。

冰河微信

公众号

分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。内容在 冰河技术 微信公众号首发,强烈建议大家关注。

公众号:冰河技术

视频号

定期分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。

视频号:冰河技术

星球

加入星球 冰河技术,可以获得本站点所有学习内容的指导与帮助。如果你遇到不能独立解决的问题,也可以添加冰河的微信:hacker_binghe, 我们一起沟通交流。另外,在星球中不只能学到实用的硬核技术,还能学习实战项目!

关注 冰河技术公众号,回复 星球 可以获取入场优惠券。

知识星球:冰河技术

公众号

分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。内容在 冰河技术 微信公众号首发,强烈建议大家关注。

公众号:冰河技术

视频号

定期分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。

视频号:冰河技术

星球

加入星球 冰河技术,可以获得本站点所有学习内容的指导与帮助。如果你遇到不能独立解决的问题,也可以添加冰河的微信:hacker_binghe, 我们一起沟通交流。另外,在星球中不只能学到实用的硬核技术,还能学习实战项目!

关注 冰河技术公众号,回复 星球 可以获取入场优惠券。

知识星球:冰河技术

在 GitHub 上编辑此页
上次更新: 2026/4/29 16:18
Contributors: binghe001
阅读全文
×

扫码或搜索:冰河技术
发送:290992
即可立即永久解锁本站全部文章

星球会员
跳转链接