作者回复: 这个只是用了Spring的BeanFactory的一些扩展机制而已,知道了之后就不觉得高端了
作者回复: 1. 构造参数并不是只有无参数的,这里我们的GreetingApplicationRunner构造方法既有默认的无参数构造方法,也有可以传入参数的,对于定义Bean这个目的来说,最终只要能返回一个对象就行了,怎么创建的不重要。 2. “GreetingApplicationRunner is NOT present in CLASSPATH”出现在没有在pom.xml中加入greeting模块时。"We already have a greetingApplicationRunner bean registered."出现在我们从AutoconfigureDemoApplication里去掉了greetingApplicationRunner注释后,也就是我们的Spring容器中存在GreetingApplicationRunner类型的Bean时。
作者回复: 只是以防万一,一般情况下是DefaultListableBeanFactory,这里是true
作者回复: 进程结束时希望做些什么动作,比如Shutdown Hook
作者回复: 不判断就直接强转,万一类型不对就会报错,转换前做个类型判断比较保险,这是个编码习惯。
作者回复: 这是一个BeanFactoryPostProcessor,需要声明时加上static
作者回复: 额,没看懂你的问题。你贴的这段逻辑就是看看上下文里是否已经注册了greetingApplicationRunner,注册好了就不走后面的逻辑了。你遇到了什么问题么?
作者回复: 课程里没有涉及到这两个东西,抱歉
作者回复: 那就是注册了两个GreetingApplicationRunner,你可以检查一下