作者:
江南白衣1.因为两者的用途不同,所以Annotation与XML应该并存
Anootation vs XML 到了现在,在Spring和EJB3各占一边的持续演示下,各自的用途已清晰。
虽然两者之间完全可以相互替代,没有绝对不能做的事情,但却存在好不好的问题,两者的用途不同,应该并用:
"size=10,db_user=ito"这样的参数,仍然适合放在XML,YAML(ruby),properties,ini文件里。
而Annotation中所放,是真正程序的一部分,是旧编程体系中所缺的那一块东西。
看看编程语言的发展:
一开始只是函数的封装;
到了OO语言,对象有了自己的属性和方法;
到了框架满天飞的年代,这些属性和方法又有了自己的属性,来告诉框架如何为自己提供服务。比如Spring和EJB3,POJO就用配置信息来告诉框架无侵入的提供服务。整个进化的过程非常自然。
因为这些信息本来就是程序的一部分,所以应该仍然放在Code里头,Spring把它割裂到XML明显影响了代码的阅读。
2.Anotation/XMLPK Interface,Spring 无侵入性的基础切尔斯基的Blog讲了Annotation/XML对Interface的PK。这次PK,也可以认为是Spring 对 EJB2.1在框架无侵入性上的一次PK。
在EJB2.1时代,POJO必须通过接口来向框架声明一些东西,这就造成了框架的侵入性,强迫POJO实现一堆接口。而Spring,把这些元信息搬到了XML配置文件。
在Spring里随便就可以举个例子。比如一个POJO,在Spring为它进行依赖注入A和B后,需要根据A和B来装配一个内部属性C,这样就需要再跑一个init()函数。Spring提供两种方式,一种侵入性的,实现InitializingBean接口的afterPropertiesSet()函数供Spring调用。而另一种是无侵入性的,在Bean的xml节点里面自行定义init函数的名字。
3.Annotation目前的弱点
一是Hibernate、Struts、三姑妈、四姨婆的annotation如果一股脑儿的全堆在可怜的POJO上很没人道,如果三姑六婆都抢Transation这个Anontation就更惨了。
二是annoation的表达能力有限,不如XML的强。
4.JSR250 - Common Annotations for the JavaFinal Draft已经发布,八卦回来一看,也只是多定义了几个Common Annotation而已。
1.Generated 自动生成的代码要用此声明,而且必须说明工具的名称,如@Generated(“com.sun.xml.rpc.AProcessor”)
2.
Resource/Resources 就是EJB3里面用的资源引用。
3.PostConstruct / PreDestroy 声明那些如题的函数。
还有一些安全方面的annotation,不关心。
文章:Java下的框架编写(1)--序Java下的框架编程(2)-对泛型的无聊用法和为擦拭法站台Java下的框架编程(3)--关于反射的碎话Java下的框架编程(4)--Annotation vs XML vs Interface 最新一RoundJava下的框架编程(5)--cglib应用Java下的框架编程(6)--asm(待写)
分享到:
相关推荐
point-cloud-annotation-tool win10解压直接运行
github链接链接:https://github.com/springzfx/point-cloud-annotation-tool 在windows平台编译完成后的exe和dll文件,可以直接打开使用,并对原项目进行了优化,增加了列表和标注文件的显示功能,标注起来更快,...
赠送jar包:mybatis-plus-annotation-3.2.0.jar; 赠送原API文档:mybatis-plus-annotation-3.2.0-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.2.0-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
赠送jar包:mybatis-plus-annotation-3.1.0.jar; 赠送原API文档:mybatis-plus-annotation-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
赠送jar包:mybatis-plus-annotation-3.1.0.jar; 赠送原API文档:mybatis-plus-annotation-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...
mybatis-plus-annotation-3.4.0.jar
hibernate-validator-annotation-processor-4.3.1.final-sources.jar.zip
前端项目-chartjs-plugin-annotation,chart.js的注释
官方版本,亲测可用
This tutorial show how to use Hibernate/JPA Named Queries. We start by explaining why we would use ... Next, we show an example of how to use named queries, either with annotations or XML configuration.
尚硅谷康师傅java学习...2020-4-10 java 注解(Annotation) 2020-4-11 Java 集合 2020-4-15 java 泛型 2020-4-18 java IO流 2020-4-19 java 网络编程 2020-4-21 java反射 2020-4-22 java8 新特性 2020-4-27 单元测试
我不想上传了还不给我删的权利,不知道做的什么垃圾产品
官方版本,亲测可用
generate-default-impl-maven-plugin.zip,生成默认实现maven plugingenerates任意java interfcae的空默认实现
一个基于React的无限可定制的图像注释库 安装 npm install --save react-image-annotation # or yarn add react-image-annotation 用法 export default class Simple extends Component { state = { annotations :...
官方版本,亲测可用
chartjs-plugin-annotation.js Chart.js> = 3.0.0的注释插件 ... 它不能用作嵌入式插件。 对于Chart.js 2.4.0至2.9.x支持,请使用 该插件在图表区域上绘制线,框,点和椭圆。...Chart.Annotation.js在MIT许可下可用。
java运行依赖jar包