问题背景:
使用 @Service
来配置 Dubbo 的服务提供方时,通过
interfaceClass:
来指定服务提供方实现的 interface 的类,但是报出异常如下:
Cannot resolve method ‘interfaceClass’
代码如下:
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service(interfaceClass = CheckItemService.class)
@Transactional
public class CheckItemServiceImpl implements CheckItemService {
@Autowired
private CheckItemDao checkItemDao;
public void add(CheckItem checkItem) {
checkItemDao.add(checkItem);
}
}
解决方法:
在找了一圈资料后
LomBok
插件已经成功配置File Encodings
的编码也统一为UTF-8Annotation Processors
也成功勾选了Enable annotation processing
- 进行了Invalidate Caches 重启
上述方法都没有解决我的问题
最终在检查导入的时候发现:
导入的service是org.springframework.stereotype.Service
而需要的是com.alibaba.dubbo.config.annotation.Service;
因此替换import后即可解决问题
最终代码:
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.transaction.annotation.Transactional;
@Service(interfaceClass = CheckItemService.class)
@Transactional
public class CheckItemServiceImpl implements CheckItemService {
@Autowired
private CheckItemDao checkItemDao;
public void add(CheckItem checkItem) {
checkItemDao.add(checkItem);
}
}