当前位置: 代码迷 >> Java Web开发 >> spring 属性注入能破坏Java的封装性吗
  详细解决方案

spring 属性注入能破坏Java的封装性吗

热度:429   发布时间:2016-04-13 22:30:25.0
spring 属性注入会破坏Java的封装性吗
如题,Java属性的操作一般都是通过方法来的,spring的的属性注入,原则上是不是破坏了Java的封装性
------解决思路----------------------
这看你如何理解,首先spring最显著的作用之一就是解耦。使你整个项目之间呈现松耦合状态,而这样做是通过反射实现的。原则上,我个人认为,并不破坏其封装特性,如果你自己用过反射,就知道有个“抑制检查”的属性,因此非公开的方法,是不能通过反射得到的。况且从Spring的配置中,你也应该知道,Spring的所有操作均通过public方法实现,而不会直接去获取某个成员变量。其这样做,我相信也是不愿侵入到你的对象当中去。
------解决思路----------------------
引用:
不知道我记没记错。spring的xml注入方法里面,里面直接写属性是条用对象里面的set方法,但是annotation注入直接写在属性上,不写set方法也能注入。即使属性是private,这应该算是怕坏封装性吧?

楼主如果把annotation直接写在属性上,不封装,确实破坏了封装。最好的方式是先封装属性,然后把标签写在set方法上。这样就不会破坏封装性了。
  相关解决方案