注解配置bean的引用
1.AutowiredAnnotationBeanPostProcessor
由component-scan自动注册该实例,并且可以自动装配具有@Autowired、@Resource和@Inject注解的属性
@Autowired注解自动装配具有兼容类型的单个bean属性,可以用它注解(构造器、字段、方法),没有匹配的时候,Spring将会报错
@Autowired
private UserService userService;
或
private UserService userService;
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
@Autowired(required = false) required为false时,标志该注解的属性运行不被设置。
有多个同类型对象的时候,可以根据名称来装配对象
如下,属性名称和注解后的value名称是一致的
@Autowired
private UserRepository userRepository;
@Repository(value = "userRepository")
public class UserJdbcRepository implements UserRepository {
@Override
public void save() {
System.out.println("UserJdbcRepository Save user");
}
}
如果不设置value值,spring会提示装配错误
或者使用@Qualifier("userRepositoryImpl")注解,标识属性类型
@Autowired
@Qualifier("userRepositoryImpl")
private UserRepository userRepository;
在方法参数中
@Autowired
public void setUserRepository(@Qualifier("userRepositoryImpl") UserRepository userRepository) {
this.userRepository = userRepository;
}
网友评论