Autowired自动装配,Bean之间的关联关系
在Ioc容器里面找有没有跟这个类兼容的Bean,有的话加载
可以用在构造器,普通字段,有参方法
数组类型属性,集合类型属性,Map
required=false不需要装配
@Resource和@inject和 @Autowired类似
package annotation.repository;
public interface UserRepository {
void save();
}
package annotation.repository;
import org.springframework.stereotype.Repository;
//起名字UserJdbcRepository
@Repository("UserJdbcRepository")
public class UserJdbcRepository implements UserRepository {
@Override
public void save() {
System.out.println("save jdbc ....");
}
}
package annotation.repository;
import org.springframework.stereotype.Repository;
//起名字UserRepositoryImpl
@Repository("UserRepositoryImpl")
public class UserRepositoryImpl implements UserRepository{
@Override
public void save() {
System.out.println("Impl .....");
}
}
package annotation.service;
import annotation.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
@Qualifier("UserRepositoryImpl") //指定名字
private UserRepository userRepository;
//@Autowired
//@Qualifier("UserRepositoryImpl")
//也可用在方法上
public void setUserRepository( UserRepository userRepository) {
this.userRepository = userRepository;
}
public void add() {
System.out.println("UserService add.");
userRepository.save();
}
}