一、java se之注解与反射
1、注解的由来
将不包含业务逻辑的部分,也称作服务或能力,
直接通过标注(注解,Annatation)来定义与识别,不再通过xml等配置。
减少配置量,项目一大配置太多,反而成为负担
2、关于配置与注解
1.1 注解的优势:配置的烦锁与注解的灵活
1.2 注解的劣势:太灵活导致维护性差
1.3 实战项目选择:配置+注解
3、关于反射
3.1 “正射”:通过正常的import等引用,直接new出来的对象。
3.2 “反射”:通过Class字节码对象来实例化其对应的实例。
3.3 强大的反射无处不在,hadoop,nutch,spark等通过配置即可看出大部分应用到反射。
3.4 正向代理与反向代理
正向与反向,你可以认为从客户端角度来说的。
客户端能知道代理的存在,则为正向。那么爬虫代理显然是正向代理
客户端不知道代理的存在,则为反向。apache httpd,nginx均常做反向代理,多用于负载均衡等场景。
4、常用注解
Override:用于检查方法是否被真正准确的重写
Deprecated: 用于标志属性、方法等已经过时,不再建议被使用
SuppressWarnings : 阻止某些情况下的warnning信息
5、元注解:注解的注解
Retention:保持力,保留范围
source: 注解信息只在源文件中
class:在字节码文件中,但不被jvm加载与识别
runtime:在字节码中,被jvm加载,主要用于反射
Target
注解的修饰类型,包括包、类、方法、属性、局部变量等,通过ElementType枚举类来搞定。
Documented
该注解是否也加入到java doc
Inherited
该注解能否被继承
5、注解的用法与autowired的简单实现
6、总结
循序渐进,锲而不舍。
细致耐心,高手可成。