Maison  >  Article  >  Java  >  Analyse d'instance de type des annotations Java

Analyse d'instance de type des annotations Java

王林
王林avant
2023-05-01 20:31:121501parcourir

1. Annotations personnalisées

Définissez les annotations à l'aide de mots-clés : @interface

// #1 定义注解
public @interface MyAnno1{
}

2. Meta annotations

Annotations utilisées pour modifier les annotations.

Cinq méta-annotations fournies par JDK :

(1) @Target : utilisé pour déterminer l'emplacement d'utilisation de l'annotation personnalisée modifiée

(2) @Retention : utilisé pour déterminer le cycle de vie de l'annotation personnalisée modifiée

(3) @Inherited : Indique que l'annotation est héritée (comprendre)

(4) @Documented : Lors de l'utilisation de javadoc pour générer des documents API, s'il faut inclure cette annotation (comprendre)

(5) @Repeatable : l'annotation est dans la même position, ne peut apparaître qu'une seule fois. Avec @Repeatable, vous pouvez l'utiliser plusieurs fois au même endroit.

package util;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
import anno.JDBCConfig;
 
@JDBCConfig(ip = "127.0.0.1", database = "test", encoding = "UTF-8", loginName = "root", password = "admin")
@JDBCConfig(ip = "127.0.0.1", database = "test", encoding = "UTF-8", loginName = "root", password = "admin")
public class DBUtil {
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
 
    public static Connection getConnection() throws SQLException, NoSuchMethodException, SecurityException {
        JDBCConfig config = DBUtil.class.getAnnotation(JDBCConfig.class);
        System.out.println(config);
 
        String ip = config.ip();
        int port = config.port();
        String database = config.database();
        String encoding = config.encoding();
        String loginName = config.loginName();
        String password = config.password();
 
        String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s", ip, port, database, encoding);
        return DriverManager.getConnection(url, loginName, password);
    }
 
    public static void main(String[] args) throws NoSuchMethodException, SecurityException, SQLException {
        Connection c = getConnection();
        System.out.println(c);
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer