stweaver 2023-02-14 09:38 采纳率: 0%
浏览 58

新公司spring代码疑问


@Service
public class ZcDataJdServiceImpl extends ServiceImpl<ZcDataJdMapper, ZcDataJd> implements IZcDataJdService {

    private final ZcDataLogMapper zcDataLogMapper;

    private final ZcDataMapper zcDataMapper;

    private final SysUserRoleMapper sysUserRoleMapper;

    private final SysRoleMapper sysRoleMapper;

    @Autowired
    public ZcDataJdServiceImpl(ZcDataLogMapper zcDataLogMapper, ZcDataMapper zcDataMapper, SysUserRoleMapper sysUserRoleMapper, SysRoleMapper sysRoleMapper) {
        this.zcDataLogMapper = zcDataLogMapper;
        this.zcDataMapper = zcDataMapper;
        this.sysUserRoleMapper = sysUserRoleMapper;
        this.sysRoleMapper = sysRoleMapper;
    }
}

入职新公司,看项目代码,请问下这里要注入mapper 直接@resource 就好了 ,为啥要这样写,用构造方法,还用final修饰?

  • 写回答

5条回答 默认 最新

  • Tomshidi 2023-02-14 10:03
    关注

    总体来说,字段注入和构造器注入的差别不大,毕竟都无法避免循环注入问题。
    @Resource 是java自带的注解,@Autowired 是spring的注解,@Autowired 使用场景更灵活。
    使用final修饰可以避免mapper对象被二次赋值,不过我感觉可能是为了消除idea自动检测到的警告。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月14日