开发中spring遇到的一些问题汇总

106 阅读1分钟

1、如何在普通类中调用mapper中的方法

在普通类中使用mapper方法时,普通类进行构造时此时还没有进行bean的注入,没有生成上下文对象,所以mapper对象为null,调用时报nullPointException

初始化顺序
静态变量 – 非静态成员变量 – 执行构造函数(此时通过@autowired修饰的成员变量为null) – bean注入 – 执行被@PostConstruct注解修饰的init函数

@PostConstruct注解用于在依赖注入完成后,执行一些初始化操作

实例代码:

@Component
public class Warning {

    @Autowired
    private MaintenanceMapper maintenanceMapper;

    public static Warning warning;

    @PostConstruct
    private void init(){
        warning = this;
        warning.maintenanceMapper = this.maintenanceMapper;
    }
  }

2、在程序启动完成之后去做一些操作

ApplicationListener<ApplicationReadyEvent> 是 Spring 框架中的事件监听器接口,用于监听应用程序启动完成的事件,实现该接口,并重写onApplicationEvent方法,就可以在方法中去做一些初始化操作:启动定时任务,开启监听线程等。