bean基于Annotation装配;@Resource和@Autowired区别

1、bean基于Annotation装配

2、@Resource和@Autowired区别补充:
i.
@Resource是javaEE中的方法,@Autowired是spring中的方法
ii.
不能在普通类(不在IOC容器中的类)中使用@Resource和@Autowired
iii.
@Autowire不能用在局部变量上,但是可以用于“@bean+返回值”的方法参数前或方法前,(不能用于“三层组件+扫描器”中的方法的方法参数前)
错误案例(前面漏截了@Service):

正确案例1:

正确案例2(少截了@Bean):

iiii.@Resource(JSR标准,java提供的import javax.annotation.Resource;)和spring中的@Autowired(import org.springframework.beans.factory.annotation.Autowired;)均会被spring追踪到,idea中被注入和注入的标识:

iiiii.

    @Bean
    public OilCar oilCar(@Autowired Speed speed2) {//这里不能用@Resource,而且@Autowired居然可以按照name匹配
        OilCar o=new OilCar();
        o.setSpeed(speed2);
        o.setName("oilCar。。。。。");
        return o;
    }

猜你喜欢

转载自www.cnblogs.com/superyoungy/p/12681287.html