Sping註解(annotation)
阿新 • • 發佈:2018-12-11
1.依賴注入的註解(DI-annotation)
@Component註解元件:註冊元件到spring容器中,相當於配置檔案中的bean. 與@Component具有相同功能,不同意義的註解還有三個: @Repository :註解在Dao實現類上 @Service : 註解在service實現類上 @Controller :註解在處理器上(SpringMVC)
@Scope("prototype") 範圍:預設是singleton(單例) prototype:原型
@Autowired :預設byType自動注入(把bean裡面引用的物件的setter/getter方法省略,它會自動幫你set/get)
@Autowired 與 @Qualifier("studentService") 一起使用 : byName方式自動注入
//byType自動注入
@Autowired
private SessionFactory sessionFactory;
//byName方式自動注入
@Autowired
@Qualifier("studentService")
private IStudentService service;
在applicationContext.xml檔案中配置:
<!-- 會掃描com所有子包 --> <context:component-scan base-package="com.*"/>
2.事務的註解(Tx-annotation)
這裡事務發生在service中,BuyStockServiceImpl實現IBuyStockService介面,例:
@Transactional 事務註解(一般預設)
屬性有:isolation:事務傳播屬性(預設:REQUIRED)
propagation:事務隔離級別(預設:DEFAULT)
readOnly:是否只讀 (預設:false)
rollbackFor : 需要回滾的異常類
@Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED) @Override public void openAccount(String aname, double money) { adao.insertAccount(aname,money); }
在applicationContext.xml檔案中配置:
<!-- 註冊事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--載入事務註解驅動-->
<tx:annotation-driven transaction-manager="transactionManager"/>