1. 程式人生 > >Spring :bean管理的常用註解

Spring :bean管理的常用註解

A…@Component註解

作用: 把資源讓spring來管理。相當於在xml中配置一個bean。 屬性: value:指定bean的id。如果不指定value屬性,預設bean的id是當前類的類名。首字母小寫。

2…@Controller @Service @Repository 三個註解都是針對一個的衍生註解,他們的作用及屬性都是一模一樣的。

@Controller:一般用於表現層的註解。
@Service:一般用於業務層的註解。
@Repository:一般用於持久層的註解。

B…注入資料 相當於:

<property name= ref=""> <property name= value="">

[email protected] 作用: 注入基本資料型別和String型別資料的 屬性: value:用於指定值 [email protected](重點) 作用:

自動按照型別注入。當使用註解注入屬性時,set方法可以省略。它只能注入其他bean型別。當有多個型別匹配時,使用要注入的物件變數名稱作為bean的id,在spring容器查詢,找到了也可以注入成功。找不到就報錯。

@Service("userService")
public class UserServiceImpl implements UserService{
	
	@Value("張三")
	private String name;
	
	@Autowired
	private UserDao userDao;


	@Override
	public void save() {
		System.out.println("業務層:使用者儲存");
		System.out.println("使用者名稱:" + name);
		userDao.save();
	}

}

3 [email protected]

作用: 在自動按照型別注入的基礎之上,再按照Bean的id注入。它在給欄位注入時不能獨立使用,必須和@Autowire一起使用;但是給方法引數注入時,可以獨立使用。 屬性: value:指定bean的id。

public class UserServiceImpl implements UserService {
	@Autowired
	@Qualifier("userDao2")
	private UserDao userDao;
	@Override
	public void save() {
		System.out.println("業務層:使用者儲存");
		userDao.save();
	}

}

[email protected]

作用: 直接按照Bean的id注入。它也只能注入其他bean型別。 屬性: name:指定bean的id。

	//@Autowired
//	@Qualifier("userDao2")
	@Resource(name="userDao2")
	private UserDao userDao;

5…@Scope

作用: 指定bean的作用範圍。 屬性: value:指定範圍的值。 取值:singleton prototype request session globalsession

@Scope("prototype")
public class UserServiceImpl implements UserService{
	
	@Value("張三")
	private String name;
	
//	@Autowired
//	@Qualifier("userDao2")
	@Resource(name="userDao2")
	private UserDao userDao;


	@Override
	public void save() {
		System.out.println("業務層:使用者儲存");
		System.out.println("使用者名稱:" + name);
		userDao.save();
	}

}

6…@PostConstruct註解 @PostConstruct加在方法上,指定bean物件建立好之後,呼叫該方法初始化物件,類似於xml的init-method方法

@PostConstruct
	public void init(){
		System.out.println("呼叫了init方法");
	}

7…@PreDestory註解

@PreDestory加在方法上,指定bean銷燬之前,呼叫該方法,類似於xml的destory-method方法

	@PostConstruct
	public void init(){
		System.out.println("呼叫了init方法");
	}

C .XML和註解的比較

在這裡插入圖片描述