0%

🥒 12.包扫描和属性占位符

​ 本节实现了另外一种bean的配置方式,并且对于bean的属性来说,配置的时候还可以使用占位符的形式从属性文件中读取,做到一次配置,多次使用的目的,文章中涉及到的代码放到了 仓库 中,主要分为自动扫描bean的注册以及修改bean属性的配置方式。

🥔 11.在bean的生命周期中加入AOP

​ 在上一节中我们将IOC的部分彻底补充完整,现在的简易spring框架已经有了bean定义,注册,属性填充依赖注入,xml文件解析,应用上下文,修改,初始化和销毁,感知注入容器资源,多种方式多种类型创建bean以及事件机制,本节中在原有项目的基础上增加了AOP的功能,将从AOP的实现到将AOP融入现有spring框架中进行介绍,相关的代码我放到了 仓库

🏜️ 76.最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""

🍆 10.引入事件机制

​ 在上一节中,我们实现了多种类型多种方式创建bean多种类型的bean对象,本节中在此基础上,添加了事件功能,也就是当某些事件发生时,程序能够立马做出一些反应,就好像是一直在等着某些事件的发生。例如用户注册完成时,系统会给当前注册用户发送一些新人优惠福利。用户上线将自动给好友推送其上线消息等。本节中涉及到的代码我放到了 仓库

🍑 9.原型bean和FactoryBean

​ 在上一节中,我们实现了向bean中注入容器资源的功能,注入时不用关心配置文件中,需要什么就实现什么资源接口即可,之后资源的注入统一在初始化时执行。这使得bean的功能更强大也更灵活。但是至今为止,我们还只是创建单例的bean,没有实现如何创建原型模式的bean,并且bean的创建只能从配置文件中获取,一旦bean涉及到的配置太多,xml文件的编写就会异常复杂,是否可以使用更方便的java代码编写bean的配置并控制bean的实例化呢?所以本节中有两个目标:

  1. 创建多种模式的bean(单例或者原型)
  2. 以多种方式创建bean对象(xml或者java代码)

​ 本节涉及到的代码我放到了 仓库

🍍 8.使用回调机制注入资源

在上一节中,我们在原有项目的基础上增加了初始化和销毁模块,并且实现方式有两种,分别是xml配置和实现接口,在初始化和销毁时可以进行资源的管理。本节中我们进一步扩展bean的功能,使其可以获取到spring中的一些容器资源,为了获得这些容器资源,需要一些成员变量接收,然后在生命周期中增加这些变量的注入代码,最后bean对象就可以使用这些容器资源了,具体的代码我放到了 仓库

🎈 6.N字形变换

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:

1
2
3
P   A   H   N
A P L S I I G
Y   I   R

之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"

请你实现这个将字符串进行指定行数变换的函数:

1
string convert(string s, int numRows);

🥭7.引入初始化和销毁逻辑

​ 在上一节中,我们实现了应用上下文,并且在应用上下文中加入了修改模块,主要是在bean的生命周期的实例化之前和之后分别加入修改逻辑,本节中继续在这个项目的基础上增加一个模块:初始化和销毁模块,分别用于初始化bean内部所需要的一些信息,以及在bean使用完毕之后,销毁bean的实例化信息,使得项目向着标准的spring框架更进一步,本节中涉及到的代码放到了 仓库