大佬教程收集整理的这篇文章主要介绍了GRAILS框架运行机制探,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
DomainClassGrailsPlugin.enhanceDomainClasses(application,applicationContext) HibernatePluginSupport.enhanceSessionFactory(sf,application,applicationContext)
static enhanceDomainClasses(GrailsApplication application,ApplicationContext ctX) { for(GrailsDomainClass dc in application.domainClasses) { def domainClass = dc MetaClass MetaClass = domainClass.MetaClass MetaClass.ident = {-> delegate[domainClass.identifier.name] } MetaClass.constructor = {-> if(ctx.containsBean(domainClass.fullName)) { ctx.getBean(domainClass.fullName) } else { BeanUtils.instantiateClass(domainClass.clazz) } } MetaClass.static.create = {-> ctx.getBean(domainClass.getFullName()) } addValidationMethods(application,domainClass,ctX) addRelationshipManagementMethods(domainClass) } }
def doWithSpring = { ..... }
Closure c = (ClosurE)this.plugin.getProperty(DO_WITH_SPRING); BeanBuilder bb = new BeanBuilder(getParentCtx(),springConfig,application.getClassLoader()); Binding b = new Binding(); b.setVariable("application",application); b.setVariable("manager",getManager()); b.setVariable("plugin",this); b.setVariable("parentCtx",getParentCtx()); b.setVariable("resolver",getResolver()); bb.setBinding(b); c.setDelegate(bb); bb.invokeMethod("beans",new Object[]{C});
private BeanBuilder invokeBeanDefiningClosure(Closure callablE) { callable.setDelegate(this); // callable.setResolveStrategy(Closure.DELEGATE_FIRST); callable.call(); finalizeDeferredProperties(); return this; }
public void doWithApplicationContext(ApplicationContext applicationContext) { if(this.pluginBean.isReadableProperty(DO_WITH_APPLICATION_COntexT)) { Closure c = (ClosurE)this.plugin.getProperty(DO_WITH_APPLICATION_COntexT); c.setDelegate(this); c.call(new Object[]{applicationContext}); }
以上是大佬教程为你收集整理的GRAILS框架运行机制探全部内容,希望文章能够帮你解决GRAILS框架运行机制探所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。