一:了解几个注解和执行顺序:
@PostConstruct > InitializingBean(@afterPropertiesSet) > init-method
这几个注解都是spring初始化的时候生效的。谈谈使用场景:
@PostConstruct:我们在策略模式的时候可以使用,初始化把不同策略装配到不同的Type。
InitializingBean(@afterPropertiesSet): 通过类实现该接口。执行一些spring加载完就需要执行的操作 或 同上的策略模式场景。
init-method:(初始化加载一些自定义配置文件: 例如第三方接口的参数)。
二: 说一说:ApplicationContextAware。spring容器初始化获取类实例的方法。通常用来构造静态实例。提供静态公用方法。以xxxxxEngine命名。类似一个执行引擎。其他类直接 xxxxxEngine.run() 来执行操作。(其实这样做和@Component标志成Bean是一个意思。所以这样写的好处是啥?
思考2个问题:1:为什么第三方的工具包的公共方法都是静态的?
2: 如何在静态方法中调用被Spring动态注入类的方法?)
1:
public class JobLaunchEngine implements ApplicationContextAware {
private static final Logger LOGGER =