1注解有什么用?
注解的作用基本有三个:
1.生成文档。这是最常见的,也是java 最早提供的注解。常用的有 @see @param @return 等
2. 跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。
3.在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
2实现一个最简单的注解:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface JdbcInfo {
String driverClassName();
String url();
String username();
String password();
}
public class JdbcUtils {
@JdbcInfo(driverClassName = "com.mysql.jdbc.Driver", url = "jdbc:mysql:///day24", username = "root",
password = "abc")
public static Connection getConnectionByAnnotation(String[] args) throws Exception {
System.out.println(Arrays.toString(args));
// 得到当前方法上的注解JdbcInfo
Method method = JdbcUtils.class
.getDeclaredMethod("getConnectionByAnnotation", String[].class);
JdbcInfo jif = method.getAnnotation(JdbcInfo.class);
String driverClassName = jif.driverClassName();
String url = jif.url();
String username = jif.username();
String password = jif.password();
// 1.加载驱动
Class.forName(driverClassName);
// 2.获取连接
Connection con = DriverManager.getConnection(url, username, password);
return con;
}
}