动态添加controller(2)

本文探讨了解决Spring MVC中工厂Bean冲突的新方案,通过直接向RequestMappingHandlerMapping注册而非BeanFactory,避免了冲突。同时,解决了接口参数名不可获取的问题,通过编译参数-parameters实现,并介绍了如何自定义HandlerMapping进行参数绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一版:https://github.com/941112341/spring-mybatis-autoController.git
承接上文:动态添加

新的方案

  • 解决工厂bean冲突,选择不向beanFactory注册,而是改为直接向RequestMappingHandlerMapping注册。
@Override
    protected void initStrategies(ApplicationContext context) {
        super.initStrategies(context);
        // 重新设置request
        .........见github

    }
  • 解决无法使用参数名的问题
    对于接口来说,spring,jdk8,包括javassist是无法获取接口方法参数名称的,除非在编译参数中加入参数-parameters

在这里插入图片描述
在这里插入图片描述
注意一定要在build里面按rebuild,重新编译,否则idea会沿用之前的编译版本

  • 参数绑定Example对象,已经完成了,使用的是添加了自己定义的handlerMapping
    使用的是query参数,在字段前加上$ 比如 xxxx?$id=1 也支持 xxxx?$idBetween=3,5
    xxxx?idIn=3,4,5

小结

  • 有时候不想要返回实体类的JSON对象
  • 分页
  • 需要进行AOP

现在还需要更多的测试,AOP, 分页,可能会用到spring自带的aop或者是mybatis插件,再容我研究一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值