请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

三个疑问

  1. @Param  这个注释在写DAO层接口的时候,是一定要在入参前面加上吗?加上后,是不是别名就是注解内的名称?

  2. 在private UserMapper userMapper中,为什么引用的是@Resource而不是@Autowired

  3. 集合用Set是不是由于权限跟角色不需要顺序,且不可以重复,才用set而不用list集合。

正在回答

1回答

1、@Param 不是必须的,加上后,别名就是注解里的名称。这个有时是必须的,比如需要传入mapper两个对象,对象有重复名称的字段(比如都包含主键id),这时不使用别名,就很难分清重复的那个属性是哪个对象里的,导致出错,而如果要带上对象名,就需要通过@Param来指定了

2、@Autowired与@Resource都可以用来装配bean

@Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false。如果我们想使用名称装配可以结合@Qualifier注解进行使用。

@Resource 默认按照名称进行装配,名称可以通过name属性进行指定, 如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果name属性一旦指定,就只会按照名称进行装配。

另外,@Autowired属于spring的,@Resource 属于J2EE的,@Resource可以减少了与spring的耦合,代码也更优雅

3、是的。set 不需要顺序,且不会有重复的对象,如果需要判断某个对象是否已存在,set也更合适,速度会更快

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信