1、@Component
创建bean的id值,无需指定创建的bean的id值,默认创建的bean的id值为小写的类名,也可以指定bean的id值
@Componen("person"),则指定一个bean的id值
2、@Respository
创建bean的id值,针对的是dao持久层bean的组件
@Respository("person"),则指定一个bean的id值
3、@Service
创建bean的id值,针对的是service服务层(业务层)bean的组件
@Service("person"),则指定一个bean的id值
4、@Controller
创建bean的id值,针对的是web表现层bean的组件
@Controller("person"),则指定一个bean的id值
5、@Value("属性值")
定义在属性字段上 针对的是基本类型和String类型,如果使用了这个注解,则该属性的set方法可以省略不写。
如 @Value("张三")
private String name;
6、@Autowired
定义在属性字段上的 针对的是对象类型,如果定义在了那个对象类型的属性身上会自动去spring容器中找该类型的实例对象给赋值。如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false)
7、@Resource或者@Resource(name="xxxxx")
默认根据名称进行装配,名称可以通过name属性进行指定,
如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找。
如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
public Car getCar() {
return car;
}
//表示当前的参数是来自Car类型的
@Resource
public void setCar(Car car) {
this.car = car;
}