亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我是不是可以這樣理解??

老師這節講的內容就是為了讓我們理解注解的使用,而實際上這節的實現功能完全由反射就可以實現,不就是用反射實現獲取類的信息嗎,然后硬是加了個通過注解來實現,,而且老師最后在用反射調用字段的get方法時根本沒有用到column注解的信息。不知道大家是否贊同我的觀點

正在回答

1 回答

針對老師代碼來說

  • 單從老師的代碼上確實和你說的差不多!

  • 其實不知道你有沒有發現,老師的本意是Column注解的值,是表示數據庫中表的字段的,如果數據庫中的表按照這個意思來創建的,那么最后生成的sql語句是有問題的。如:userName的用@Column("user_name")意味著數據庫表中字段名應該是user_name。

  • 如果我們做一個假設,需要做映射的類滿足java類名 ==(或者做固定的轉換,如首字母小寫) 數據庫中表名,?java字段名 ==(或者做固定的轉換,如首字母小寫,在駝峰字母轉成“_ ”+ "小寫字母") 數據庫中表的字段名,那完全是可以用反射實現的,這樣是所謂的約定。

  • 但是我們學習,還是不要只局限于此,需要自己多思考!


針對注解的作用來說

  • 注解的作用主要在于標記、統一處理(如AOP面向切面編程)、去配置化(也可以認為將配置轉成了代碼)。

  • 要讓注解最后起作用的話,不同類型的注解需要借助不同的東西。這里主要說說運行時注解!運行時注解如果要起作用的話,是需要借助java的反射機制。大致思路:通過反射獲取相應的注解信息(含注解的成員值),根據注解的值進行相對應的業務處理(實際業務需求,視情況而定)。如:定義一個@log注解(作用于方法),有一個參數logTime(有after和before兩個值),那么通過反射機制獲取包含@log注解后,判斷logTime是before則在方法調用前輸出日志,如果是after則在方法調用完成后輸出日志!這其實應該是老師代碼的本意,只不過可能一時疏忽,搞錯了!

3 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我是不是可以這樣理解??

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號