1. 程式人生 > >Java及spring 註解(反射原理)

Java及spring 註解(反射原理)

java註解:

       Java5.0以後引入了註解的概念

        註解只在原始碼階段保留(編譯時忽略),不會影響程式內部的東西,決定執行級別 是一個標識

        定義一個註解就可以在其他類中使用

1.元註解:註解上面的註解

        (1)@ Retention(...)

                        

                       

    (2)@Documented

                      

(3)[email protected]-----註解執行的地方(建構函式/屬性/方法上)

                        

(4)[email protected]

                     

(5)@Repeatable(...) 可多次重複使用--可以將多個值重複賦給容器

註解的屬性:也叫成員變數,註解只有成員變數,沒有方法

 註解的成員變數在註解中以“無形參的方法”形式來宣告,其方法名定義該成員變數的名字,其返回值定義了該成員變數的型別;

  給註解的屬性賦值:

當一個註解(RunAnnotation2)沒有屬性---它只是一個標識 ()可以省略

                  

                 

                  

Java預用(本來就有)註解:

     @Deprecated:過時的方法或者類(還可以用 只是有了更好的升級)

     @Override:方法過載

     @SuppressWarnings(“要忽略的內容”):阻止警告

     @SafeVarargs:引數安全型別

     @FunctionalInterface:函式式介面註解

註解與反射:

註解通過反射獲取(通過反射獲取註解資訊), 通過類 方法名名字獲取

mvc在執行時在handlemapping會讀你的註解 拿到你的註解的值 拼成一個請求傳送到DispaterServlet或者controller

自定義註解:可以定義一個static 方法獲取註解,,然後控制程式的走向

package com.spring.annotation;

@TestAnnotation(id="666",message = "wxx")
public class Test {

    //只有當id=666時才訪問到這個方法
    private void test(){
        System.out.println("test run");
    }

    public void runTest()
    {
        //獲取類的註解
        TestAnnotation t=this.getClass().getAnnotation(TestAnnotation.class);
        if(t.id().equals("666"))
        {
            this.test();
        }
    }

}

 只要例項化物件就判斷是否加了該註解????

      使用註解--- 反射原理(需要把註解加到多個類或者多個方法)判斷邏輯

                     

            

spring 註解:

自動注入:成員變數上

     @Autowired:自動注入 預設ByType (包/介面的實現類)找,如果找到有多個bean 再按ByName查詢

                       (用你注入的型別去匹配你定義的bean 當匹配到多個時 根據 唯一的name再進行匹配  多個則異常)

                          

  @Qualifier("name"):名字注入

                            

      @Resource:成員變數

                              

 @Singleton:單例類

 @RequestBody:可以放協議上的內容

             

@RequestParam:獲取引數

               

         

@RequestMapping:請求對映

                 

 @ResponseBody:返回字串 去掉後返回原先檢視指定的頁面

 @Controller:宣告控制器  控制層

 @Serviceservice層

 @Repository相當於定義成bean 注入時便於分層

 @Component分層

                

 ps:spring 的註解很強大,其應用機制主要就是反射原理  通過獲取物件做判斷邏輯;

相關推薦

Javaspring 註解(反射原理)

java註解:        Java5.0以後引入了註解的概念         註解只在原始碼階段保留(編譯時忽略),不會影響程式內部的東西,決定執行級別 是一個標識         定義一個註解就可以在其他類中使用 1.元註解:註解上面的註解         (

Android主流IOC框架淺析(Java註解反射原理

TextView mTextView; mTextView=(TextView) findViewById(R.id.mTextView); mTextView.setOnClickListener(new OnClickListener() { @Override public void onClick

Java自定義註解反射校驗數據

sda new out 格式 是否 本地 imp 使用範圍 數據類型 package com.annotations.ecargo; import java.lang.annotation.ElementType; import java.lang.annotati

JAVA框架 Spring 註解註入

.html class IT soft pri 涵蓋 java 復制 掃描 一、首先需要引入jar包:spring-aop-4.2.4.RELEASE.jar。(在spring解壓包libs內)。 二、如果註解方式註入依賴的對象,需要引用新的約束。 內的:xsd-conf

Spring註解實現原理

先來說說註解是什麼: 註解顧名思義,就是類似於添加註釋,但是又不跟註釋完全一樣,因此,我們可以將它理解為將類或者方法與特定的資訊進行關聯。 那麼註解如何實現? 1、介面使用@interface定義。 2、通過繼承以下註解,實現功能:  元註解@Target,@Ret

Spring註解原理與自定義註解的實現

本文只是用於記錄個人在學習annotation過程中的心德,所以知識面不太完善。 1、註解的基本概念     Java 的annotation提供的是一種類似於註釋的機制,註解本身不做任何事,好比一個配置或者說一個標記。用於包、型別、構造方法、方法、成員變數、引數及本地變數

java自定義註解以及原理

import java.util.Arrays; import java.util.List; import com.puhui.flowplatform.manage.filter.RightFilter; import org.springframework.aop.BeforeAdvice; impo

SpringMvc學習心得(二)spring註解配置原理淺析

除了使用xml檔案配置以外,spring還支援使用註解實現JavaBean的配置,其具體實現方式網上已經介紹的很詳細,這裡就不再贅述了。本文將主要通過原始碼解析spring註解配置JavaBean的全過程。這裡主要分析的是@component和@Autowired這兩個註解

Spring註解注入原理

Spring容器框架包org.springframework.stereotype下Controller註解介面原始碼如下:@Target({java.lang.annotation.ElementType.TYPE})@Retention(RetentionPolicy.RU

Java框架-Spring基於註解的IOC配置註解

註解配置與xml配置都實現了減低程式間耦合的功能。 不同公司由不同習慣,有可能是純xml、純註解(很少)或者xml與註解混合使用(基於註解的IOC配置)。 1. 基於註解的IOC配置 1.1 建立一個簡單案例 1.1.1 建立專案,新增依賴(pom.xml)

Java核心機制:反射機制的原理應用方法

一、java的核心機制 java有兩種核心機制:java虛擬機器(JavaVirtual Machine)與垃圾收集機制(Garbage collection): 1、Java虛擬機器:是執行所有Java程式的抽象計算機,是Java語言的執行環境,在其上面執行Java程式碼編譯後的位元組碼程式,

Java面試題】spring+springMVC+mybatis原理實現機制(持續更新)

本文將持續更新,主要講解SSM框架的底層原理和實現機制等 1.什麼是IOC? IOC即Inverse of Control,它包括兩個內容:控制與反轉 那到底什麼東西的“控制”被“反轉”了呢?對於軟體而言,即是某一個介面具體實現類的選擇控制權從呼叫類中移除,轉交給第三

Spring MVC工作原理 註解說明

SpringMVC框架介紹     1) Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。 Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組。使用 Spring 可插入的 MVC 架構,

java 反射spring 自動注入原理

package com.xiaoqiang.user; public class User { private String username; private String mobile; public String getUsername() { retu

番外 01:Spring IoC 實現原理簡析,Java反射機制,通過類名建立物件

轉載請註明來源 賴賴的部落格 前景概要 在 01 走進Spring,Context、Bean和IoC 中,我們看到了強大的Spring通過ApplicationContext實現了bean工廠(也就是物件工廠),那究竟是怎麼實現的呢,本次給大家寫一個小D

java反射原理Spring的自動注入(轉載)

Java反射原理與Spring的自動注入 反射的定義 java的反射機制就是在執行狀態中, 對於任意一個類都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法和屬性。這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為java語言的反射機制。 Spi

SpringMVC原理註解配置詳解

ges 控制器 sof 靈活 size 實現 query -c requests 1. Spring介紹   Spring MVC是Spring提供的一個強大而靈活的web框架。借助於註解,Spring MVC提供了幾乎是POJO的開發模式,使得控制器的開發和測試更加簡單

javaSpring裝配Bean(手動裝配、自動裝配、註解裝配)

fault tran 常見 成員 如果 on() base 反轉 tor 在上一篇控制反轉中我們看到了依靠一個Bean文件來實現對代碼的控制,可謂十分便捷,再也不用去實例化對象了,2333~~~ 1.手動裝配 1 <bean id="todo" class="

(轉)javaSpring(IOC)註解裝配Bean詳解

pos work 多個 public pre tor not 註解裝配 creat 在這裏我們要詳細說明一下利用Annotation-註解來裝配Bean。 因為如果你學會了註解,你就再也不願意去手動配置xml文件了,下面就看看Annotation的魅力所在吧。 先

Java 小記 — Spring Boot 註解

控制 配置 scan 復雜 () 很好 查看源碼 回顧 www. 前言 本篇隨筆將對 Spring Boot 中的常用註解做一個簡單的整理歸檔,寫作順序將從啟動類開始並逐步向內外擴展,目的即為了分享也為了方便自己日後的回顧與查閱。 1. Application 啟動類示例