代码图片:
这个
product.getStatus()
在这里是空的,这个请求是我们后台的管理平台一个工具请求的.这个工具就是验证当前产品是否能够在网站上卖.结果这里status为null.因为status这个字段是个多语言的,默认的获取逻辑是如果get的时候,没有提供Locale这个对象,是拿当前产品的默认语言的locale的,保证了肯定能够获取到数据的.
我接着就用idea来测试了当用默认的locale来获取能否拿到值,结果是有的.
因为
product.getStatus()
这个方法debug进去跟到后面是看不到具体执行的代码的,这里有个AOP导致了我也没找到是那个类切入到这里了.这个没有源码也是头疼.
后面我也拿着没辙,因为我看着产品应该配置的我都配置了.我就直接通过页面来访问该产品看能否显示,结果居然正常显示了.我当时一脸懵逼了,请求这个的时候,status是有值了,能够通过校验.
后面我把问题向写这个工具类的同事说了,得到的反馈是这个工具有的时候就是会不好使的.?
我们这个后台也看不到请求的sql语句.我就在想应该是在页面上请求这个产品的时候,应该是在这个时候根据当前产品是属于哪个store,拿到了store的默认语言.那个AOP应该就是在此时生效了.
古话说得好,尽信书不如无书.