1. 程式人生 > >Sping註解(annotation)

Sping註解(annotation)

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"/>