阿里是众多程序员梦寐以求的地方,今天我们分享阿里的一个真实面试题,看似简单,回答起来确实没有头绪?下面我们分几点给大家说下答案。
适用场景
Xml配置场景:
1.Bean实现类来源于第三方类库,如DataSource、JdbcTemplate等,因为无法在类中标注注解,所以通过XML配置方式较好;
2.命名空间的配置,如aop、context等,只能采用基于XML的配置
基于注解配置适用情况:
Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置。
各自优缺点
XML的优点:
1. XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。
2. 在处理大的业务量的时候,用XML配置应该更加好一些。因为XML更加清晰的表明了各个对象之间的关系,各个业务类之间的调用。同时spring的相关配置也能一目了然。
3、利用 xml 配置能使软件更具扩展性。例如 Spring 将 class 间的依赖配置在 xml 中,最大限度地提升应用的可扩展性。
4.具有成熟的验证机制确保程序正确性。利用 Schema 或 DTD 可以对 xml 的正确性进行验证,避免了非法的配置导致应用程序出错。
缺点:
需要解析工具或类库的支持。
解析 xml 势必会影响应用程序性能,占用系统资源。
配置文件过多导致管理变得困难。
编译期无法对其配置项的正确性进行验证,或要查错只能在运行期。
查错变得困难。往往配置的一个手误导致莫名其妙的错误。
开发人员不得不同时维护代码和配置文件,开发效率变得低下。
Annotation的优点:
1. 在class文件中,可以降低维护成本,annotation的配置非常简单。
2. 不需要第三方的解析工具,利用java反射技术就可以轻松获取been。
3. 编辑器会实时校验错误,如果注解错误会有提醒。
4. 不用维护xml配置文件,提高了开发效率。
缺点:
如果需要对于annotation进行修改,那么要重新编译整个工程。
在程序中Annotation比较多,直接影响代码质量,对于代码的简洁度有一定的影响。
小编整理了一份JAVA高级资料,有需要的可以加一下小编QQ群:714526711,即可免费领取哦!!!
热门框架源码学习
微服务架构实战
系统性能优化
高并发和分布式技术
电商项目实战
容器化技术专题
搜索引擎
以上资料是我结合自己和身边朋友的面试经历而整理的,希望对面试的朋友或者在找工作的程序员们有所帮助。大家对技术感兴趣的朋友也可以关注我,加群:714526711会不定期更新