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註解的類型實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!