前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Controller里面方法不小心写成了private的问题

Controller里面方法不小心写成了private的问题

作者头像
chengcheng222e
发布2021-11-04 16:34:18
7430
发布2021-11-04 16:34:18
举报
文章被收录于专栏:简栈文化简栈文化
发现问题

今天本来是为了解决一个Apollo配置与Code同时变更不一致问题,我需要去通过SPI的方式去重写Apollo刷新Remote配置。所以,我就写一个很小的DEMO来验证每次变更Apollo配置对我服务端的取数。

代码语言:javascript
复制
@Data
@Component
public class MarketConfig {
    @Value("${market.test.chenyuan}")
    private String testName;

}

对应在Apollo的配置

代码语言:javascript
复制
market.test.name = Test1111

Controller层的代码

代码语言:javascript
复制
@Resource
private MarketConfig marketConfig;

@RequestMapping(value = "/sayHello", method = RequestMethod.POST)
private String sayHello(){ // 注意,这里由于我的不小心写成了private
    return marketConfig.getMarketTestName();
}

然后我就发起请求来验证我的取数,结果给我报了NullpointException的异常。因为这种代码几乎每天都在写,一下次说我的Bean没有注入进来,还有点方。

然后,我细心的debug了看了一下。如图所示:

http://static.cyblogs.com/Jietu20201204-085800.jpg

图片可以说明:

  • Spring容器100%已经存在了MarketConfigBean对象;
  • 但是MarketConfig在该Controller里面100%没有注入进来 ;
  • this显示出了一个代理的路径; 于是,我在同样的Controller去请求另外一个Method,但可以正常访问。

http://static.cyblogs.com/Jietu20201204-090305.jpg

  • Spring容器100%已经存在了MarketConfigBean对象;
  • 而且是可以确定这次MarketConfig是有注入进来的(没有展示图,不太方便)
  • this直接是显示的自己的地址

由于我就比较了一下方法的区别,最主要的区别点就是在于一个是private,另外一个是public

其实,这里我就很快明白了。因为我们这边在Controller层做了一些AOP来做监控与埋点。现阶段主要用的是CAT(现在做了很多的一些封装,后面可以分享下,如何做到无浸入性以及与Apollo的打通)。

AOP 里面用的是反射机制,用private修饰的类是注入失败的,因为拿不到,只能用public或者protected修饰。

参考地址
  • https://blog.csdn.net/qq_31451081/article/details/84100575

如果大家喜欢我的文章,可以关注个人订阅号。欢迎随时留言、交流。如果想加入微信群的话一起讨论的话,请加管理员微信号:chengcheng222e,他会拉你们进群。

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

本文分享自 简栈文化 微信公众号,前往查看

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

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

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