spring注解问题求解

public class Boss {
private Car car;
private Office office;
@Autowired
public void setCar(Car car) {
this.car = car;
}
@Autowired
public void setOffice(Office office) {
this.office = office;
}
}
第一个问题,如何选择使用那种注解?
第二个,@Resource,@Service,使用了注解还需要写set,get方法吗?原来xml中的配置是不是也不用写了?

第三个,对一个类的属性或者方法使用注解有什么作用?在一ServiceImp中要用到Dao层,如果使用注解是不是不用写getter,settier方法了,为什么要使用注解?

@Autowired 和 @Resource 依赖注入注释


@Autowired 根据类型注入

@Resource 根据bean名称注入


@Resource

private Car car;     // spring会将名称为car 的bean注入进来,前提是car 的bean 类型是Car

      好处:可以配置多个Car 类型的bean,供不同的需要注入,需要记住配置的bean名字


@Autowired 

private Car car;   // spring会将Car类型的bean注入进来,不管这个bean的名字什么

      好处:方便使用,只要有Car类型的bean,就可使用,不需要关注bean名字(配置多个就麻烦了)


直接将注解标记在属性上,如上面的例子,可以不用get、set方法


@Service


注解类的(即bean)


@Service("car")

class Car {

}

相当于xml配置文件中配置了一个名字为car的bean,这样的话,在xml中就不要额外配置了


你的第3个问题,参考@Autowired 和 @Resource就解决了


spring3.0中增加的标签,基础的无非2中

     @Service (还有号几个) 注解,标记在类上,快速配置bean,即以前在xml配置bean

    @Autowired 和 @Resource 依赖注入,即某个bean的属性注入其他bean

追问

就是说所有标注在属性上面的注解,不论是引入类还是其他属性都不用在写set,get方法了是吧,那么多注解该如何选择使用哪一个?
注解用在构造函数上有神马作用?

追答

spring3.0中增加的标签,基础的无非2中
@Service (还有号几个) 注解,标记在类上,快速配置bean,即以前在xml配置bean
@Autowired 和 @Resource 依赖注入,即某个bean的属性注入其他bean

标注在属性上,spring注入时不需要get、set方法

你要干嘛:是配置一个bean,还是设置注入关系??

追问

在一个类上面加注解怎么讲,这样的好处是神马?是不是这样就不用在spring配置文件中做配置了?

追答

@Service
注解类的(即bean)

@Service("car")
class Car {
}
相当于xml配置文件中配置了一个名字为car的bean,这样的话,在xml中就不要额外配置了

是不是这样就不用在spring配置文件中做配置了? 是,这样就不用在文件中配置了

追问

在dao层注入已存在的类怎么做?还有你上面说的设置注入关系,我不太懂,能否在指点指点?

追答

电话私信给我,我告诉你

温馨提示:答案为网友推荐,仅供参考