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;
}