使用注解的时候也是需要在XML里面必要的扫描配置,不能完全脱离配置文件。而且自定义的类还好,如果是JDK 或者第三方的jar包,就没有办法在里面加注解。而且,使用面向接口编程,如果一个接口有多个实现类呢?注解的方式就不知道注入哪个类的对象了,XML配置的话,因为在bean标签里只能配置普通类(不能是接口和抽象类),并且哪怕是同一个接口的不同实现类,在id属性中的名字都是不一样的。所以注入到某个调用者中的时候,类型是明确的某个实现类。而且都说用xml配置解耦性更强。似乎完全用XML配置更强大,不知道我理解的对吗?
注解的实现原理有个类全局扫描,注解分析的过程(自定义类或jar包越多,此过程越庞大),而XML配置只要加载xml文件并分析就行了。
XML的好处是配置集中,维护方便,注解的优点是配置分散,这个也是它的缺点,两者用得恰当都是很灵活的
######回复 @BoXuan : 额,谢谢。我对依赖注入虽然知道一些可是它的好处还是不是特别的深刻。我主要是用来和hibernate结合管理事物。不知道是不是线程安全的,比如多个用户同时操作相同的数据。######回复 @颖辉小居 : Spring的核心就是依赖注入,这个功能很大程度上都是依赖注解的,如果光靠XML去手动配置,那就得累死人了######回复 @BoXuan : 谢谢######回复 @颖辉小居 : 只要有第三方jar包源码,加上注解重新编译为jar包,你就能正确的解析注解,没源码你就老实的用XML吧。 JDK我个人建议不要妄动######谢谢,请问如果是JDK 或者第三方的jar包是不是不能用注解的方式了######复杂的使用xml,例如数据源配置,redis配置,缓存配置。
简单的使用注解,例如由spring管理的dao和service实例,这种bean一般都是@Service(name)和@Resource(name=xxx),没有复杂的配置。
######正解。各有千秋,注解更简单方便,XML功能更强的######springboot xml一边去版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。