前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IOC容器-实现原理反射

IOC容器-实现原理反射

作者头像
吉林乌拉
发布2019-08-13 22:59:41
9930
发布2019-08-13 22:59:41
举报
文章被收录于专栏:吉林乌拉

在上一篇中我们通过spring的IOC容器,成功实例化了我们指定的对象,在这一篇中我们将简单了解一下spring底层到底是怎么实现上述功能呢。也就是Java中反射技术。由于反射技术是Java API中提供的功能,所以在这里我们不在做过多的介绍,而是通过测试用例,来了解一下反射技术的具体应用。

下面我们将用反射技术,来实现上一篇中IOC容器实现的功能。

  • 属性注入
  • 构造函数注入
  • 接口注入

上面的代码基本实现了我们上一篇中IOC容器的功能,但是在用Java反射技术实例化对象时,如果方法是私用的也就是private,那么我们通过上述的方式调用则会出现问题,请看下面测试用例。

我们已经将setUserDetailAble的方法设置成了私用方法。然后我们直接执行上一个已经通过的接口注入的测试用例。看一下执行结果。

我们看虽然我们测试用例什么都没有改,但上述结果还是出现了异常。这是为什么呢?这是因为在使用Java反射时如果要访问private类型的方法或字段必须要取消Java语言的语法检查。也就是添加额外的代码,还是可以调用私用的方法和属性的,在这一点上与我们正常开发时还是有区别的,因为Java语言规定私用方法只能在本类中调用,但是如果用Java中反射技术是可以打破这个限制的。下面我们看怎么调用私用的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吉林乌拉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档