NutzCN Logo
问答 使用IocBean注入Dao层,若有多个sevice在@Inject时就出错误了
发布于 3114天前 作者 oceam0000 2166 次浏览 复制 上一个帖子 下一个帖子
标签:
Caused by: org.nutz.ioc.IocException: more than one bean for type=[interface com.ifm.sys.dao.UserDao], names=[Ljava.lang.String;@3e7baed5 FAIL to create Ioc Bean name=[userServiceImpl]
	at org.nutz.ioc.impl.ObjectMakerImpl.make(ObjectMakerImpl.java:147)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:204)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:229)
	at org.nutz.ioc.impl.NutIoc.getByType(NutIoc.java:355)
	at org.nutz.ioc.val.ReferTypeValue.get(ReferTypeValue.java:42)
	at org.nutz.ioc.weaver.FieldInjector.inject(FieldInjector.java:31)
	at org.nutz.ioc.weaver.DefaultWeaver.fill(DefaultWeaver.java:56)
	at org.nutz.ioc.impl.ObjectMakerImpl.make(ObjectMakerImpl.java:135)
	... 30 more

下面是我的代码:

@IocBean
public class UserDaoImpl extends BaseDao implements UserDao {

	@Override
	public IfmUser fetchUser(String userid) {
		return dao.fetch(IfmUser.class, Cnd.where("userid", "=", userid));
	}

	@Override
	public List<Record> qryRolesByid(String roleid) {
		// TODO Auto-generated method stub
		return null;
	}
}

-------------serivce有两个地方调用
@IocBean
public class UserServiceImpl extends BaseService implements UserService {

	@Inject 
	private UserDao userDao;
	
	@Override
	public CallBackBean qryuserList(String json) {
		Cnds cnds = Json.fromJson(Cnds.class, json);
		//cnds = SqlUtils.apCnd(cnds);
		List<Record> res = userDao.qryuserList(cnds);
		int count = userDao.countuserList(cnds);
		return joinformateJson(json, "success", count + "", res);
	}
}







3 回复

1.r.55 的bug,已fix

以上代码可以在UserDaoImpl上的注解改成

@IocBean(name="userDao")

就是名字与属性名一致即可。

@wendal 恩,加上去OK了,我换个新版本?

@oceam0000

如无意外明天发布1.r.56哦

添加回复
请先登陆
回到顶部