当年话下
这么说吧,注解如果写在属性上,那么底层操作是:发现该属性有该注解,然后获取注解的name,找到对应name的实体,如果没有name则根据类型来设置值。然后找到该属性对应的setter方法,然后将调用setter将对应的值传入进去。如果直接写到setter方法上,那么也是同样的操作,但不同地方在于,写在属性上就多了一步找到setter方法的操作,写在setter上则少了这一步操作,这是个优化项。对于性能来说,其实消耗不是很大,如果不是巨量操作的服务,一般的应用和服务都建议写在field上,因为方便维护和查看,因为本身对性能的影响微乎其微。如果是巨量操作次数的系统,比如淘宝,那么强烈建议写在setter上,具体的你可以自己写demo,循环执行一亿次,或者10亿次,就能看出比较明显的区别了,但是你也会发现,1亿次的操作其实也差不了多少。