JDK自帶注解
- @Override 重寫
- @Deprecated 已過期
- @Suppvisewarnings 壓制警告
Demo:
public interface Person {
public String Name();
public int Age();
@Deprecated
public void Say(); //過期,但不能刪除,可以注解已過期
}
class Man implements Person {
@Override
public String Name() {
return null;
}
@Override //若接口沒有該方法,會報錯
public void Say() {
}
}
public class AnnoDemo{
@SuppressWarnings("deprecation")
public static void main(String[] args){
Person pm = new Man();
pm.Name();
pm.Say(); //這里會有警告,使用suppressWarnings可以壓制警告
}
}
常見第三方注解
Spring
- @Autowired 自動裝配
- @Service 用於標注業務層組件
- @Repository 用於標注數據訪問組件,即DAO組件
- @Controller 用於標注控制層組件(如struts中的action)
- @Component 泛指組件,當組件不好歸類的時候,我們可以使用這個注解進行標注。
Mybatis(還沒接觸,暫時看不懂..)
-
@SelectProvider(type = TestSqlProvider.class, method = "getSql") : 提供查詢的SQL語句,如果你不用這個注解,你也可以直接使用@Select("select * from ....")注解,把查詢SQL抽取到一個類里面,方便管理,同時復雜的SQL也容易操作,type = TestSqlProvider.class就是存放SQL語句的類,而method = "getSql"表示get接口方法需要到TestSqlProvider類的getSql方法中獲取SQL語句。
-
@InsertProvider(type = TestSqlProvider.class, method = "insertSql") :用法和含義@SelectProvider一樣,只不過是用來插入數據庫而用的。
-
@UpdateProvider(type = TestSqlProvider.class, method = "updateSql") :用法和含義@SelectProvider一樣,只不過是用來更新數據庫而用的。
-
@DeleteProvider(type = TestSqlProvider.class, method = "deleteSql") :用法和含義@SelectProvider一樣,只不過是用來刪除數據而用的。
-
@Options(useCache = true, flushCache = false, timeout = 10000) : 一些查詢的選項開關,比如useCache = true表示本次查詢結果被緩存以提高下次查詢速度,flushCache = false表示下次查詢時不刷新緩存,timeout = 10000表示查詢結果緩存10000秒。