提示:列举目前在开发中常用的注入方式
提示:以下是本篇文章正文内容,下面案例可供参考
一、属性注入
属性注入目前最常用的注入方式,使用
@Autowired
注解实现。在类的属性上添加@Autowired
注解,Spring会自动注入对应的Bean对象。需要注意的是,属性注入可能会导致Bean状态的不完整性,因为它们是在构造函数后才被注入的,因此可能会出现空指针异常等问题。
@Service
public class MyBean {
@Autowired
private MyService myService;
@Override
public String toString() {
return JSON.toJSONString(myService);
}
}
二、构造函数注入
构造函数注入是一种类型安全、清晰明了的方式,可以保证Bean的完整性。在类中定义一个构造函数,并在其参数列表中声明需要注入的Bean对象。Spring会在初始化Bean的时候,自动将对应的Bean对象传入。
@Service
public class MyBean {
private final MyService myService;
public MyBean(MyService myService) {
this.myService = myService;
}
@Override
public String toString() {
return JSON.toJSONString(myService);
}
}
三、方法注入
方法注入是一种灵活的注入方式,在类中定义一个方法,并在其参数列表中声明需要注入的Bean对象。使用
@Autowired
注解标记该方法,Spring会在初始化Bean的时候,自动调用该方法并传入对应的Bean对象。
提示:需要注意的是,方法注入不要在构造函数中调用,因为它们是在构造函数后才被调用的,可能会出现空指针异常等问题。
@Service
public class MyBean {
private MyService myService;
@Autowired
public void setMyService(MyService myService) {
this.myService = myService;
}
@Override
public String toString() {
return JSON.toJSONString(myService);
}
}