對於service接口有多個實現問題

當service有多個接口時,如果用

@Autowired 
	private TestService service;

    就會報異常,告訴我們 他的實現只能有一個

所以需要自己去new不同的實現類,但是在這裏因爲我在serviceimpl中我們獲取dao層也是用註解形式獲取的,這裏也會報異常,表示dao爲空,這裏dao層也不能用註解獲取,這裏在網上找到了獲取dao的方法

@Component
public class SpringBeanUtils implements ApplicationContextAware {
 
	private static ApplicationContext applicationContext;
	@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		SpringBeanUtils.applicationContext=applicationContext;
	}
	
	public static Object getBean(String name) {
		return applicationContext.getBean(name);
	}
	
	public static T getBean(String name,Class requiredType){
		return applicationContext.getBean(name, requiredType);
	}
}

創建這個工具類,然後在 spring-mvc.xml中添加

<bean id="springBeanUtils" class="com.dnkj.nms.util.SpringBeanUtils"/>

然後獲取dao的方法修改一下,這裏還需要注意,原先用的@service註解要去掉

//原先是這樣寫的
@Autowired
	private test1 test;
//改爲
private test1 test=(test1) SpringBeanUtils.getBean("test1");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章