第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Dubbo+SpringBoot整合: 依賴注入Null Pointer Exception的問題

Dubbo+SpringBoot整合: 依賴注入Null Pointer Exception的問題

森林海 2019-01-15 19:30:03
我用Dubbo+SpringBoot搭建微服務(wù)controller和service分別屬于兩個服務(wù)里面分別有如下類 @RestController @RequestMapping("product") public class ProductController{ @Reference(version="1.0.0") ProductService productService; @GetMapping("create") public String createProduct(){ return productService.createProduct(); } } @Component @Service(version = "1.0.0") public class ProductServiceImpl implements ProductService { @Override public String createProduct(){ return "created"; } } 我發(fā)現(xiàn)如果我先啟動service服務(wù),后啟動controller服務(wù),運行OK但是如果我先啟動controller服務(wù),后啟動service服務(wù),productService就是null,出現(xiàn)Null Pointer Exception 我的理解是:因為service后啟動,所以controller中的productService依賴注入時找不到實例,注入失敗。但是這樣的話,那假如有兩個service微服務(wù),A和B,A中的某個類需要B中某個類的服務(wù),而B中某個類又需要A中某個類的服務(wù),那誰先啟動都會有問題啊。怎么回事?
查看完整描述

3 回答

?
嚕嚕噠

TA貢獻1784條經(jīng)驗 獲得超7個贊

spring mvc注解和 dubbo注解配置在兩個不同的context導(dǎo)致的
比較簡單的解決辦法是不要在controller里使用dubbo注解

查看完整回答
反對 回復(fù) 2019-03-01
?
泛舟湖上清波郎朗

TA貢獻1818條經(jīng)驗 獲得超3個贊

dubbo=2.6.1

        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
//消費時
    @Reference(version="0.0.1", timeout = 5000, check= false)
    private HelloWorldService helloWorldService;
// 啟動類
@SpringBootApplication
@EnableDubboConfiguration
@EnableAspectJAutoProxy

服務(wù)提供方

@Service(version = "0.0.1", timeout = 5000, interfaceClass = HelloWorldService.class)
public class HelloWorldServiceImpl implements HelloWorldService {

    private final Logger logger = LoggerFactory.getLogger(getClass());

    /*
     * (non-Javadoc)
     * 
     * @see org.bjhxxt.shop.service.HelloWorldService#sayHello(java.lang.String)
     */
    @Override
    public String sayHello(String name) {
        logger.debug("hello dubbo service");
        return "Hello dubbo for " + name;
    }

}

親測是可以的,當(dāng)然除了上面的如果有漏掉的,就不一定了。

查看完整回答
反對 回復(fù) 2019-03-01
  • 3 回答
  • 0 關(guān)注
  • 2493 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號