首页>代码>grails代码学习教程>/target/work/plugins/cache-1.1.1/src/java/grails/plugin/cache/CacheConfigArtefactHandler.java
/* Copyright 2012-2013 SpringSource.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package grails.plugin.cache;

import groovy.lang.GroovySystem;
import groovy.lang.MetaClass;

import org.codehaus.groovy.grails.commons.AbstractInjectableGrailsClass;
import org.codehaus.groovy.grails.commons.ArtefactHandlerAdapter;
import org.codehaus.groovy.grails.commons.InjectableGrailsClass;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * Artefact handler for CacheConfig classes.
 *
 * @author Burt Beckwith
 */
public class CacheConfigArtefactHandler extends ArtefactHandlerAdapter {

	/** The artefact type. */
	public static final String TYPE = "CacheConfig";

	/**
	 * Default constructor.
	 */
	public CacheConfigArtefactHandler() {
		super(TYPE, CacheConfigGrailsClass.class, DefaultCacheConfigGrailsClass.class, TYPE);
	}

	/**
	 * GrailsClass interface for CacheConfig definitions.
	 */
	public static interface CacheConfigGrailsClass extends InjectableGrailsClass {
		// no methods
	}

	/**
	 * Default implementation of <code>CacheConfigGrailsClass</code>.
	 */
	public static class DefaultCacheConfigGrailsClass extends AbstractInjectableGrailsClass
	       implements CacheConfigGrailsClass {

		/**
		 * Default constructor.
		 * @param wrappedClass
		 */
		public DefaultCacheConfigGrailsClass(Class<?> wrappedClass) {
			super(wrappedClass, CacheConfigArtefactHandler.TYPE);
		}

		@Override
		public MetaClass getMetaClass() {
			// Workaround for http://jira.codehaus.org/browse/GRAILS-4542
			return GroovySystem.getMetaClassRegistry().getMetaClass(DefaultCacheConfigGrailsClass.class);
		}

		@Override
		public Object newInstance() {
			Object instance = super.newInstance();
			autowireBeanProperties(instance);
			return instance;
		}

		protected void autowireBeanProperties(Object instance) {
			ConfigurableApplicationContext ctx = (ConfigurableApplicationContext)grailsApplication.getMainContext();
			ctx.getBeanFactory().autowireBeanProperties(instance,
					AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
		}
	}
}
最近下载更多
初心不负丶方得始终  LV10 2020年10月9日
lch111  LV5 2019年3月13日
simonchow  LV4 2019年2月14日
夜晚12345  LV2 2018年7月20日
g6963832  LV1 2018年6月4日
z849608243  LV6 2018年4月23日
湖带冰  LV2 2018年1月28日
flex1999  LV2 2018年1月25日
sally_wang  LV3 2017年10月13日
chenghongye  LV1 2017年9月21日
最近浏览更多
lbsers  LV5 2023年5月8日
sfpsaa  LV1 2022年8月10日
张小飞  LV4 2022年4月22日
1306878374  LV13 2021年12月21日
xuelong  LV7 2021年5月10日
hhhggrt  LV3 2021年4月21日
1822662434  LV2 2020年12月30日
sweetlove  LV17 2020年12月10日
初心不负丶方得始终  LV10 2020年10月9日
泓鼎168  LV19 2020年9月6日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友