總結項目我們常用的注解

      網友投稿 762 2022-05-30

      總結項目中我們常用的注解

      注解產生的原因

      給大家看看SSM項目的配置文件!

      applicationContext.xml文件

      在使用注解之前,XML被廣泛用于框架的配置,開發(fā)人員和架構師認為XML維護變得越來越麻煩。

      開發(fā)速度相對較慢,編譯時很難檢查出錯誤, 運行中的錯誤很難定位, 調試難度較大。后來注解開發(fā)的方式應運而生,

      注入bean的時,一個注解搞定,接收http請求時,一個注解搞定。輕松高效,出現bug很快就能解決

      xml 和 注解的使用場景與區(qū)別

      注解:是一種分散式的元數據,與源代碼緊綁定。

      xml:是一種集中式的元數據,與源代碼無綁定。

      注解與注釋?

      注釋:給程序員去看

      注解:給計算機去看

      Java注解: JDK5.0 引入的一種注釋機制。

      最開始:Java 定義了一套注解,共有 7 個,3 個在 java.lang 中,剩下 4 個在 java.lang.annotation 中。后來有慢慢加了很多。

      常用的四個: @Override:標明此方法覆蓋了父類的方法 @Target :描述注解能夠作用的位置 ElementType取值: * TYPE:可以作用于類上 * METHOD:可以作用于方法上 * FIELD:可以作用于成員變量上 @Retention :描述注解被保留的階段 RetentionPolicy取值: * SOURCE:源文件有效 * Class:Class文件有效 * RUNTIME:運行時有效 @Documented: 描述注解是否被抽取到api文檔中

      Spring的注解

      用于創(chuàng)建對象的

      @Component:把資源讓spring來管理。相當于xml中配置一個bean。 value:指定bean的id,如果不指定value屬性,默認bean的id是當前類的類名。首字母小寫 @Controller:與@Component功能一樣,一般用在表現層,便于分層 @Service:與@Component功能一樣,一般用在業(yè)務層,便于分層 @Repository:與@Component功能一樣,一般用于持久層,便于分層 @Bean:該注解只用用在方法上,表明使用此方法創(chuàng)建一個對象,并且放入spring容器中

      用于注入數據的

      @Autowired:自動按照類型注入。 使用要注入的對象變量名稱作為bean的id,在spring容器中查找,找到了注入成功,找不到就報錯。 默認按類型裝配 , 也可以使用名稱裝配,配合@Qualifier注解 @Qualifier:在自動按照類型注入的基礎上,再按照Bean的id注入。 @Resource:直接按照Bean的id注入。它也只能注入其他Bean類型。name屬性是指定Bean的id 默認按名稱進行裝配,通過name屬性進行指定 @Value:注入基本數據類型和String類型數據 @Value("${authUrl.productId}")-常用與注入配置文件中的數據

      Spring5的新注解

      @Configuration:用于指定當前類是一個spring配置類,當有容器時會從該類上加載注解。 @ComponentScan:用于指定spring在初始化容器時要掃描的包。 @Import:用于導入其他配置類,解耦合 @Scope("prototype"):指定Bean的作用范圍 ---singleton單例,prototype多例

      SpringMVC的注解

      @RequestParam:把請求中指定名稱的參數給控制器中的形參賦值 @GetMapping(value = "/queryReceivedNegotiation") public Wrapper queryReceivedNegotiation(@RequestParam String userId) ----示例 http://localhost:8012/upload/queryReceivedNegotiation?userId=3433434 @PathVariable:用于綁定URL中的占位符 @GetMapping(value = "/querySumBulletChat/{userId}") public Wrapper queryCommentReply( @PathVariable String userId) ----示例 http://localhost:8012/videoBulletchat/querySumBulletChat/3434 upload/queryReceivedNegotiation?userId=adfadfad videoBulletchat/querySumBulletChat/this.userid: # RequestParam只能用于接收請求帶的params # PathVariable用于接收url路徑上的參數 @RequestBody:用于獲取請求體內容 @RequestMapping:RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上。 作用與類上用@RequestMapping 作用與方法上可用@RequestMapping的變形 @GetMapping與@PostMapping @GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫。 @PostMapping是一個組合注解,是@RequestMapping(method = RequestMethod.POST)的縮寫。 @GetMapping:Get請求 @PostMapping:post請求 @PostMapping("insertPdfBehavior") public Wrapper insertUserBehavior(@RequestBody PdfBehaivorEntiry entiry)

      Mybatis的注解

      @Insert 增 @Insert("insert into t_md5(id,md5,path,create_time,update_time,creator,remark,is_delete) values (#{id},#{md5},#{path},#{createtime},#{updatetime},#{creator},#{remark},#{isdelete})") @Delete 刪 @Delete("DELETE FROM t_project WHERE project_name=#{projectName}") @Update 改 @Update("UPDATE t_project SET project_name =#{newName} where id =#{id}") @Select 查 @Select("select * from t_project where project_name=#{name}")

      自定義注解--簡單例子

      /** * @Author: Promsing(張有博) * @Date: 2021/8/21 - 17:09 * @Description: 自定義注解 * @version: 1.0 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String getValue(); } public class HelloService { static Class clazz=HelloService.class; @MyAnnotation(getValue = "hello") public static void sayHello(){ Method sayHello = null; try { sayHello = clazz.getMethod("sayHello", null); MyAnnotation annotation = sayHello.getAnnotation(MyAnnotation.class); System.out.println(annotation.getValue()); } catch (NoSuchMethodException e) { e.printStackTrace(); } } public static void main(String[] args) { sayHello(); } }

      注解:

      解開注解的神秘面紗

      像是在一個廣場上(項目),給部分人打上一個標簽(注解),然后可以根據某種“機制”找到這些標簽,并給這些標簽賦值,修改。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【FPGA】流水線學習筆記
      下一篇:《嵌入式實時操作系統(tǒng):RT-Thread設計與實現》 —2.4 RT-Thread快速上手
      相關文章
      亚洲人成网77777色在线播放| 亚洲人成人无码网www国产| 亚洲午夜久久久影院伊人| 亚洲国产精品13p| 亚洲av无码一区二区三区在线播放| 亚洲不卡中文字幕| 亚洲中文字幕久久精品无码2021| 婷婷亚洲久悠悠色悠在线播放| 久久亚洲国产午夜精品理论片| 亚洲日韩精品A∨片无码| 亚洲精品乱码久久久久久按摩| 在线A亚洲老鸭窝天堂| 亚洲综合无码精品一区二区三区| 久久久久亚洲精品无码网址 | 久久久久亚洲精品无码网址色欲 | 亚洲中文字幕无码mv| 亚洲精品美女网站| 亚洲影院天堂中文av色| 亚洲日本一线产区和二线 | 亚洲AV色欲色欲WWW| 国产亚洲精品美女| 亚洲视频在线免费| 亚洲精品乱码久久久久久久久久久久| 亚洲综合国产精品第一页| 在线亚洲午夜片AV大片| 一区二区亚洲精品精华液| 亚洲精品中文字幕| 国产亚洲视频在线播放大全| 在线视频亚洲一区| 亚洲性日韩精品一区二区三区| 丝袜熟女国偷自产中文字幕亚洲| 亚洲男同帅GAY片在线观看| 久久久久亚洲av无码专区蜜芽| 久久久婷婷五月亚洲97号色| 亚洲国产精品久久网午夜| 亚洲精品第一综合99久久| 亚洲国产精品综合久久久| 亚洲妓女综合网99| 亚洲色无码专区一区| 精品国产亚洲第一区二区三区| 亚洲国产成人久久综合一区77|