@Component
@Controller
@Service
@Repository
@Value
public class Bird {
@Value("name") //1、基本数据类型
private String name;
@Value("#{3-1}") //2、Spring EL表达式,3-1=2
private int age;
@Value("${bird.color}") //3、通过配置文件赋值
private String color;
}
@PropertySource 声明配置文件路径
@Configuration
@PropertySource("classpath:values.properties") //声明配置文件路径
public class MyConfig {
@Bean
public Bird bird(){
return new Bird();
}
}
@Autowired
@Qualifier
优先级高于@Autowired
@Service
public class MyService {
@Qualifier("dao")
// @Resource(name="dao")
@Autowired
private MyDao myDao;
public void print(){
System.out.println(myDao); // 输出的myDao是@Qualifier注入的那一个
}
}
@Resource()
范围更加广阔,优先级比@Qualifier() @Autowired更高。
@Primary
定义主次,适用于多个bean名字相同的情况。
@Configuration
@ComponentScan()
public class MyConfig {
@Primary
@Bean("myDao")
public MyDao dao(){
MyDao dao = new MyDao();
dao.setFlag("9");
return dao;
}
@Bean("myDao")
public MyDao myDao(){
MyDao dao = new MyDao();
dao.setFlag("3");
return dao;
}
}