一.注入物件/屬性
定義在變數(不推薦,破壞封裝性)或setter上
首先在beans之間新增<context:annotation-config/>
@Autowired 生成Bean時會自動在容器里根據型別匹配
@Autowired
public void setCategory(Category category) {
this.category = category;
}
@Resource(推薦) 可以注入指定name的bean。預設按名稱,找不到名稱按型別匹配
@Resource(name="c")
private Category category;
二.對Bean的註解(掃描元件)
先新增<context:component-scan base-package=”包名”/>
讓容器自己去包裡掃描,不需要再手動配置<bean></bean>
在原始碼的類增加@Component註解,即表明此類是bean,掃描到以後容器就生成一個bean
@Component("p")
public class Product {
另外,因為配置從applicationContext.xml中移出來了,所以屬性初始化放在屬性宣告上進行。
常用註解:
@Compenent 通用註解
@Repository 持久層元件註解
@Service 業務層元件註解
@Controller 控制層元件處理
@Value 可以注入指定變數的值
@Scope 可以指定物件的作用域singleton(單例模式,預設)、prototype(多例模式)、request、session、global Session,
@Transactional 表示事務