Struts Spring Hibernate註解說明

Struts註解說明 
@ParentPackage(value) 
指定action屬於哪個包 指定的包必須是struts.xml文件中已經存在的 
@Namespace(value) 
命名空間,頁面訪問後臺路徑的一部分,位於項目路徑後 
@Action 
指定action的名稱,作爲路徑的一部分,在命名空間之後 
比如,一個完整的路徑爲 : 
http://localhost:8080/ISearch/register.do?method=register 
其中 http://localhost:8080/ISearch 爲項目路徑 
“/” 爲命名空間 register 爲action名稱 .do爲action後綴 (在struts.xml文件中配置),?表面後面是有參數的 method爲參數名稱,register是參數的值 
@Results(value={@Result(name=”success”,location=”/admin/jsp/site/reader.jsp”)}) 
指定跳轉的內容,其中value的值是一個跳轉的集合,在action的方法中 返回值爲String類型時,返回值即是要指定跳轉的名稱

Spring註解說明 
@Autowired 
Spring 通過一個 BeanPostProcessor 對 @Autowired 進行解析,所以要讓 @Autowired 起作用必須事先在 Spring 容器中聲明 AutowiredAnnotationBeanPostProcessor Bean,如下: 
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" /> 
這樣將會在項目中對標註 @Autowired 的 Bean 進行自動注入

@Autowired註解可以簡單理解爲setter方法,它可用於構造器或成員變量

比如使用 UserDAO 只需在類的Fields中聲明

@Autowired 
private UserDAO userDAO; 
就可以了 不需要再初始化userDAO

@Resource(name=”sessionFactory”) 
相當於配置文件中的ref=”sessionFactory” 
其作用跟@Autowired是相同的 只不過@Resource的name指定的是注入的bean的name,而@Autowired是按bean的類型注入

@PostConstruct 
該註解作用於方法,在bean被實例化之後即調用該方法

@Required註解適用於bean屬性的setter方法

@Component 
是一個通用註解,作用於類 即將該類定義爲Spring的bean

@Repository、@Service和 @Controller是對@Component的具體化,其作用和地位是完全相同的

@Repository通常用於註解DAO類,即持久層

@Service通常用於註解Service類,即服務層,業務操作都寫在這

@Controller通常用與Controller類,即控制層

要使依賴註解定義的bean生效,必須在spring配置文件中聲明: 
<context:component-scan base-package="com.aegis.isearch.model.dao.impl,com.aegis.isearch.controller.service.impl" 
annotation-config="true" /> 
即spring將掃描指定包下所有類 將指定了@Repository、@Service和 @Controller @Component註解的類定義爲spring的bean 
多個包路徑之間用逗號分隔

Hibernate註解 
在spring配置文件中的sessionFactory的定義中,sessionFactory的類必須使用 
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean註解才能生效。 
<property name="packagesToScan"> 
<list> 
<value>com.aegis.isearch.model.beans</value> 
</list> 
</property> 
sessionFactory的packagesToScan指定了需要掃描的包,只有在指定包下的類使用的註解纔有效

@Bean 
作用於類,指定該類爲一個持久化的實體 
@Id 
作用於field,指定實體的標識 
@Transient 
作用於field,指定的field不被持久化 
@Column 
作用於field,指定該field被持久化時的一些具體屬性,如nullable 是否可以爲空,unique 是否唯一等,name屬性指定了對應數據庫中的列名,如果不設置該屬性,將使用field的name作爲數據庫中列的名稱 
@ManyToOne @OneToOne @ManyToMany 
指定與其他對象的外鍵映射關係,targetEntity屬性指定了引用的對象,該對象也必須是持久化的。 
@JoinColumn @JoinColumns 
在外鍵映射中指定引用外鍵的列,如果不指定Hibernate將會自動分配列名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章