[Java Notes] アノテーションの理解と一般的なアノテーションの例

1: アノテーションの理解:

注釈の概要

JavaSE では、アノテーションを使用する目的は、廃止された関数にマークを付ける、警告を無視するなど、比較的単純です。JavaEE/Android では、アノテーションはより重要な役割を果たします。たとえば、アプリケーションのあらゆる側面を構成し、古いバージョンの JavaEE に残された煩雑なコードと XML 構成を置き換えます。

将来の開発モデルはアノテーションに基づいています。JPA はアノテーションに基づいています。Spring 2.5 以降はアノテーションに基づいています。Hibernate 3.x 以降もアノテーションに基づいています。現在、Struts2 の一部もアノテーションに基づいています。アノテーションはトレンドです。 、ある程度までは、フレームワーク = アノテーション + リフレクション + デザインパターンと言えます。

2: 一般的なアノテーションの例

注釈を使用する場合は、その前に @ 記号を追加し、注釈を修飾子として使用しますサポートするプログラム要素を装飾するために使用されます

例 1: ドキュメント関連の注釈を生成する

@author は、このタイプのモジュールを開発した作成者を示します。複数の作成者間で使用され、分割されます。

@version は、このタイプのモジュールのバージョンを示します

@see はターン、つまり関連トピックを指します。

@どのバージョンから追加されたの

@paramメソッド内のパラメータの説明、パラメータが無い場合は記述できません

@returnメソッドの戻り値の説明、メソッドの戻り値の型が void の場合は記述できません

@Exception は、メソッドによってスローされる可能性のある例外を説明します。メソッドが throws で明示的に例外をスローしない場合、メソッドを記述することはできません。

   @param @return および @Exception の 3 つのタグはメソッドにのみ使用されます。

   @param の形式要件: @param パラメータ名 パラメータの種類 パラメータの説明

   @return の形式要件: @return 戻り値の種類 戻り値の説明

   @Exception のフォーマット要件: @Exception 例外の種類 例外の説明

   @param と @Exception は複数同時に実行できます

例えば:

package com.annotation.javadoc;
/**
* @author shkstart
* @version 1.0
* @see Math.java
*/
public class JavadocTest {
/**
* 程序的主方法,程序的入口
* @param args String[] 命令行参数
*/
public static void main(String[] args) {
}

/**
* 求圆面积的方法
* @param radius double 半径值
* @return double 圆的面积
*/
public static double getArea(double radius){
return Math.PI * radius * radius;
}
}

例 2: コンパイル時の形式チェック (JDK に組み込まれた 3 つの基本的なアノテーション)

@Override : 親クラスのメソッドのオーバーライドが制限されています。このアノテーションはメソッドに対してのみ使用できます。

@Deprecated:変更された要素 (クラス、メソッドなど) が廃止されたことを示すために使用されます。通常、変更された構造は危険であるか、より良い代替手段が存在するためです。

@SuppressWarnings : コンパイラ警告を抑制します

例:

package com.annotation.javadoc;
public class AnnotationTest{
    public static void main(String[] args) {
        @SuppressWarnings("unused")
        int a = 10;
    }
    
    @Deprecated
    public void print(){
        System.out.println("过时的方法");

    }
    
    @Override
    public String toString() {

        return "重写的toString方法()";

    }
}

例 3: コードの依存関係の追跡と代替構成ファイル関数の実装

Servlet3.0 はアノテーションを提供するため、web.xml ファイルにサーブレットをデプロイする必要がなくなりました。

例:

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException { }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        doGet(request, response);
    } }
<servlet>

<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

Springフレームワークにおける「トランザクション」の管理

 @Transactional(propagation=Propagation.REQUIRES_NEW,
            isolation=Isolation.READ_COMMITTED,readOnly=false,timeout=3)

    public void buyBook(String username, String isbn) {
        //1.查询书的单价
        int price = bookShopDao.findBookPriceByIsbn(isbn);

        //2. 更新库存
        bookShopDao.updateBookStock(isbn);

        //3. 更新用户的余额
        bookShopDao.updateUserAccount(username, price);
    }
<!-- 配置事务属性 -->

<tx:advice transaction-manager="dataSourceTransactionManager" id="txAdvice">
<tx:attributes>
<!-- 配置每个方法使用的事务属性 -->
<tx:method name="buyBook" propagation="REQUIRES_NEW"
isolation="READ_COMMITTED" read-only="false" timeout="3" />
</tx:attributes>
</tx:advice>

見てくれてありがとう!

おすすめ

転載: blog.csdn.net/qq_64976935/article/details/129561951