spring注解 -- 赋值组件(自动装配)

@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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值