在Java中,如何把自定义的类(类上没有Spring托管注解),加入Spring容器,并走完初始化生命流程?
package com.example.demo;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
//这里没有注解。
//当然也可以加上@Component等注解,但那必须是Class对象了不然就会被Spring扫描到(或者排除被扫描范围的Object)
public class AutowireBean implements InitializingBean {
@Autowired //让它生效
private Test2 test2;
@PostConstruct //让它生效
public void PostConstruct(){
System.out.println("AutowireBean的@PostConstruct");
}
public AutowireBean() {
System.out.println("AutowireBean的构造方法");
}
@Override //让它生效
public void afterPropertiesSet() throws Exception {
System.out.println("AutowireBean的属性注入后方法");
}
// getter & setter
}
那你就需要把 自定义bean类 添加 到 spring 的配置文件中去,通过 配置文件的方式注入。
Test2 这个类 如果也没有标记,也需要放到spring配置文件里,它的Bean配置定义要在 你自定义bean类的上面
自己往容器里面注册元数据,实现方案太多了