前提 :dubbo项目,dubbo服务使用xml配置
先贴正确的代码:
provider.xml
通过dubbo的配置 dubbo:service 定义了dubbo 的服务
通过spring的配置 bean 定义了 spring 的 Bean 对象,
UserinfoImple.java的代码
private GameinfoImpl gameinfo;
public GameinfoImpl getGameinfo() {
return gameinfo;
}
public void setGameinfo(GameinfoImpl gameinfo) {
this.gameinfo = gameinfo;
}
//引用gameinfo对象的方法
@Override
public UserEntity addUserinfo(UserEntity user) {
Random rand = new Random();
user.setId(rand.nextInt(100));
user.setGameEntity(this.gameinfo.getGameEntity(user.getId()));;
return user;
}
通过上面的定义,在UserinfoImpl中定义 GameinfoImpl 的属性 gameinfo,同时提供get和set方法。
通过上面配置,在消费者工程里面,调用 UserinfoImpl 的 addUserinfo 接口的时候能正常运行,说明,gameinfo对象正常注入,没有问题。
但是上面的写法实在是太麻烦了,如果UserinfoImpl中引用了多个对象,那么需要在xml中配置多个节点,同时还要配套提供多个对象的setget方法,spring注解的优势就无法体现。
所以打算通过spring注解的方式,注入gameinfo对象。
但是,却一直没有成功,写法如下,大神帮忙查看一下。
provider.xml
在GameinfoImpl类上使用 @Service注解
在UserinfoImpl类上使用 @Service注解
在gameinfo 对象上使用 @Autowired注解
@Service
public class UserinfoImpl implements IUserinfo{
@Autowired
private GameinfoImpl gameinfo;
......
本想利用spring的注解方式简化代码,但是上面的配置却不能正常运行,请大神指点。。。。