学习SpringBoot时候遇到的一些问题以及猜想

今天在测试多种Springboot注入bean时候意外发现了这个问题

这是我的config配置

这是我的lombok_pojo_pet类的配置

这是我的属性配置

 

 这是主类

这是运行结果

发现了什么没 

这里面有两个lombok_pojo_pet类型的bean,分别是通过属性绑定的lombok_pojo_pet和通过new建立的tomcat

这两个明明赋予了不同的数值,但是最后输出的结果一模一样,莫非是因为属性绑定优先一切,所以将tg prc两个属性覆盖掉了?

但是不对,people里面使用pet()赋值之后获得的数值却是tg prc

那么我们接着打debug查看

第一个断点我打在了student里面赋值部分,这里面我们注意到赋值并非是直接调用bean,而是用pet方法,其地址为5207

 这里两个bean对应的数值完全一样,但是地址不一样,而且跟之前pet()方法返回的数值也不一样

 由于我使用的是多例模式,我突然想到如果是单例的话结果会怎样

结果如下

 

 发现什么了没有,这一次pet()返回的地址跟l2完全一样了,而数值上tg prc被覆盖掉了

由于我本人能力不足,无法完全深入源码进行解析,但是我们都知道,地址才是存贮的具体数值,tomcat这个名称是一个指针,故我做出如下猜想

创建bean的时候,由于bean的名称是唯一的,所以在多例模式下的赋值情况类似于

int i=4

i=5

第一次调用pet()的时候,我相当于设定了一个tomcat的数值为tg prc。这个数值被set方法注入到了people中保存,但是由于我开始属性注入,后面调用tomcat这个bean时候属性解析的数值将其覆盖

单例模式下,会先对tomcat这个bean进行正常注入,随后给所有lombok_pojo_pet统一注入数值,确保唯一性

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
哥德巴赫猜想是一个数论问题,它提出了一个假设:任何一个大于2的偶数都可以表示为两个质数之和。验证哥德巴赫猜想的主要问题分析如下: 1. 输入偶数:首先,需要用户输入一个大于2的偶数作为验证的目标数。 2. 质数判断:接下来,需要判断一个数是否为质数。质数是只能被1和自身整除的正整数。可以使用以下方法判断一个数是否为质数: - 方法一:遍历2到该数的平方根之间的所有数,判断是否能整除该数。如果能整除,则该数不是质数。 - 方法二:使用埃拉托斯特尼筛法,先生成一个从2到目标数的所有数的列表,然后从2开始,将2的倍数全部标记为非质数,然后再找到下一个未标记的数,将其倍数标记为非质数,直到找到的数的平方大于目标数为止。 3. 遍历质数:接下来,需要遍历所有可能的质数对,判断它们的和是否等于目标数。可以使用两个嵌套的循环来遍历所有可能的质数对。 4. 输出结果:如果找到了两个质数的和等于目标数,则输出这两个质数。如果遍历完所有可能的质数对仍然没有找到满足条件的组合,则输出验证失败的信息。 以下是一个用C++实现的验证哥德巴赫猜想的示例代码: ```cpp #include <iostream> #include <cmath> bool isPrime(int num) { if (num <= 1) { return false; } for (int i = 2; i <= sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } void verifyGoldbachConjecture(int target) { for (int i = 2; i <= target / 2; i++) { if (isPrime(i) && isPrime(target - i)) { std::cout << target << " = " << i << " + " << target - i << std::endl; return; } } std::cout << "Verification failed." << std::endl; } int main() { int target; std::cout << "Enter an even number greater than 2: "; std::cin >> target; verifyGoldbachConjecture(target); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值