1、自定义注解
定义注解使用关键字: @interface
// #1 定义注解public @interface myanno1{}
2、元注解
用于修饰注解的注解。
jdk提供的5种元注解:
(1)@target:用于确定被修饰的自定义注解使用位置
(2)@retention:用于确定被修饰的自定义注解生命周期
(3)@inherited:表示该注解具有继承性(了解)
(4)@documented:使用 javadoc 生成 api 文档时,是否包含此注解 (了解)
(5)@repeatable:注解在同一个位置,只能出现一次。使用@repeatable,可以在同一个地方使用多次了。
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); }}
以上就是java注解的类型实例分析的详细内容。