1.空指针终结者Optional<>
当使用@Autowired注入式,如果注入的实例不存在可能会报NullPointerException异常,平时可以使用@Autowired(required = false)来解决,也可以直接使用Optional<>
@Autowired
private Optional<UserDao> userDao;
2.Map 依赖注入
@Autowired
private Map<String, BaseService> map;
其中key是bean的名字,value是实现BaseService的Bean,可根据bean的名字来获取bean实例,适用于一个Web层需要使用多个BaseService实现类的情况
3.List注入
@Autowired
private List<BaseService> list;
这种注入方式实现了BaseService的Bean,但是顺序不确定,但是可以使用@Order接口来排序,这样书序就固定了
@Order(1)
@Service
public class UserService extends BaseService<User>{}