首页 > 编程语言 > 详细

spring 注解

时间:2015-11-12 02:05:33      阅读:319      评论:0      收藏:0      [点我收藏+]

?

?

?

其中base-package为需要扫描的包(含所有子包) 
@Autowired后不需要getter()和setter()方法,Spring也会自动注入
@Qualifier指定注入哪个实现类
@Service用于标注业务层组件 
@Controller用于标注控制层组件(如struts中的action) 
@Repository用于标注数据访问组件,即DAO组件. 
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope(“prototype”)来改变。可以使用以下方式指定初始化方法和销毁方法(方法名任意)

?

实例解释:

该实例是添加@Component 后,spring在base-package扫描 后,执行afterPropertiesSet方法。

 package com.mifi.main;

import java.util.Map;
import java.util.Map.Entry;

import org.apache.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import com.mifi.common.Dictionary;
import com.mifi.main.proxy.MifiServer;

/**
 *	初始化系统上下文静态常量
 */
@Component
public class Init implements ApplicationContextAware , InitializingBean{
	
	Logger logger=Logger.getLogger(Init.class);
	
	ApplicationContext context;

	@Override
	public void afterPropertiesSet() throws Exception {
		Map<String, Object> _map=context.getBeansWithAnnotation(MifiServer.class);
		for (Entry<String,Object> e:_map.entrySet()) {
			String name=e.getKey().replace("Impl", "");
			Class<?> _clazz=e.getValue().getClass();
			MifiServer _ms=_clazz.getAnnotation(MifiServer.class);
			if(null!=_ms)
				name=_ms.name();
			Dictionary.MIFI_SERVICES.put(name,e.getValue());
		}
		logger.info("["+Dictionary.MIFI_SERVICES.size()+"] server inited ");
		
	}

	@Override
	public void setApplicationContext(ApplicationContext context) throws BeansException {
		this.context=context;
	}

}

?

?

?

?

?

?

spring 注解

原文:http://knight-black-bob.iteye.com/blog/2256211

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!