首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >春天的汽车

春天的汽车
EN

Stack Overflow用户
提问于 2014-04-10 21:39:50
回答 1查看 97关注 0票数 0

我试图在spring框架内检查一些代码,其中自动显示的功能是编码的。

让我给你举个例子。

代码语言:javascript
运行
复制
@Component
public lass Service{
   @Autowired
   private DaoLayer daoLayer;
}

我的问题是:当各自的字段被使用Autowired标记时,spring如何注入DaoLayer或任何实例。

  1. 使用反射?,如果使用反射:反射可以访问私有字段吗?
  2. 使用一个新创建的代理来完成这个任务?如果发生这种情况,那么当getter和setter不存在时会发生什么呢?
  3. 使用其他技术和哪一种?

谁能帮我指出我在哪里可以找到这个信息或解释我更多关于这个过程。

我记得在sring2.5中,setter和setter需要出现,但在spring 3.2中不再出现,那么现在spring是自己创建的吗?还是不再用了?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 21:44:18

使用反射?,如果使用反射:反射可以访问私有字段吗?

是的,春天到处都是反射。有了反射,你可以做很多事情,比如访问私有字段、方法、构造函数和类。

使用一个新创建的代理来完成这个任务?如果发生这种情况,那么当getter和setter不存在时会发生什么呢?

Spring直接在字段上解析@Autowired。在创建bean时,它只需要getter和setter(使用Java常规名称)来解析<bean>声明的<bean>元素。注意Spring再次使用反射来调用这些getter/setter。

使用其他技术和哪一种?

不需要别的了。

如果您对执行此操作的实际类感兴趣,请查看AutowiredAnnotationBeanPostProcessor春季文献也解释了其中的一些内容(查看IoC章节)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22999540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档