Spring常用注解
來源:程序員人生 發(fā)布時間:2015-02-28 08:13:14 閱讀次數(shù):3796次
經(jīng)常使用注解有以下幾種:
@Autowired
@Qualifier("")
@Repository
@Service
@Component
@Controller
@WebServelet
@Entity
@Table(name="")
@Id
@Column(length=)
@GeneratedValue(strategy=GenerationType.AUTO)
@Scope("")
聲明:用到以上注解的類,1般是沒有在xml文件中顯示地聲明的bean。
通過在類上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring會自動創(chuàng)建相應的 BeanDefinition 對象,
并注冊到 ApplicationContext 中。這些類就成了 Spring受管組件。
當1個 Bean 被自動檢測到時,會根據(jù)那個掃描器的 BeanNameGenerator 策略生成它的 bean名稱。默許情況下,對包括 name 屬性的 @Component、@Repository、 @Service 和@Controller,會把 name 取值作為 Bean 的名字。如果這個注解不包括 name值或是其他被自定義過濾器發(fā)現(xiàn)的組件,默許
Bean 名稱會是小寫開頭的非限定類名。在使用@Qualifier注入的時候依照此規(guī)則進行注入。
@Autowired
1般用于成員變量的自動賦值,將要賦給該變量的對象,可以在xml中聲明為bean,則類型自動匹配;
如果未在xml中聲明,則需要該對象標注成了“組件”,能夠被spring所辨認。
標注組件的方式有以下幾種:
?@Repository
該標注只能用于對DAO層實現(xiàn)類的組件的標注,由于該類不止是將類辨認為Bean,同時還將數(shù)據(jù)訪問
的相干異常封裝為Spring自己的數(shù)據(jù)訪問異常類型。
Spring本身提供了1個豐富的并且是與具體的數(shù)據(jù)訪問技術無關的數(shù)據(jù)訪問異常結構,
用于封裝不同的持久層框架拋出的異常,使得異常獨立于底層的框架。
?@Service
該標注1般用于對業(yè)務層類的組件標注。
?@Controller
該標注1般用于對控制層類的組件標注。
?@Component
該標注1般用于對”中立層“類的組件標注。
之所以中立,是由于所在類沒有明顯的角色劃分,不屬于MVC框架3層中的某個角色,可以是工具類等。
@Qualifier("")
由于存在繼承等特性,存在給父類賦值為子類的情況(使用@Autowired),例如:給DAO的某個類賦值為DAOImp的某個實例,
則在該DAOImp類上不單單標注@Repository,在援用到該子類的地方(@Autowired下面)應緊接著標注@Qualifier(""),
冒號中標明該類的類名并且首字母小寫。
@WebServelet(urlPattern="")
用于標注Servlet類,可定義訪問路徑urlPattern。
@Entity
經(jīng)常使用語數(shù)據(jù)表類標注,標注了@Entity的類,必須是model層中的1個數(shù)據(jù)庫的表的封裝。
@Table(name="")
?@Id
標明該字段為primary key
?@Column(length=,nullable=)
標明該字段的屬性,對應于table在disign時候的各項屬性。
?@GeneratedValue(strategy=GenerationType.AUTO)
標明該字段為自增字段。
@Scope("")
該注解限定該類是單例還是原型。
選擇prototype或singleton。在不進行該標注的時候,spring默許為單例singleton。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈