论坛首页 Web前端技术论坛

Grails插件MyBatis的gateway问题

浏览 2299 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-26  
Grails插件MyBaits使用时命令 grails create-gateway Client会生成两个文件 client.xml和ClientGateway.groovy,但是这个Gateway不能通过在一个controller或者services里面写属性的形式注入,例如属性写成
clientGateway
    def clientGateway;
    def list2 = {
        RowBounds rowBounds = new RowBounds(1,2);
        HashMap map = new HashMap()
        map.put("pagination",rowBounds)
        def list = clientGateway.selectClient(map);
        [clients:list]
    }

本应该自动注入实例的,但是不好用,看了MyBatis插件代码,把这里改一下即可
修改IbatisGrailsPlugin.groovy文件此处
 for (a in application.getArtefacts(GatewayArtefactHandler.TYPE)) {
            log.debug "Found gateway artifact $a of type ${a.clazz}; will register as ${a.shortName}"
            if (a) {
               def shortName = a.shortName[0].toLowerCase() + a.shortName[1..-1];
                "${shortName}"(a.clazz) { bean ->
                    a.shortName[0]
                    bean.singleton = true
                    bean.autowire = "byName"
                }
            }
        }

将动态在spring创建的bean的id修改成小写即可。
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics