最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Feign+mybatisplus搭建項(xiàng)目遇到的坑及解決

 更新時(shí)間:2023年03月30日 14:18:47   作者:清淡看朝霞  
這篇文章主要介紹了Feign+mybatisplus搭建項(xiàng)目遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

出現(xiàn)的錯(cuò)誤

1.Failed to bind properties under ‘spring.datasource’ to javax.sql.DataSource:

2.@org.springframework.beans.factory.annotation.Autowired(required=true)等

原因(簡(jiǎn)潔說(shuō)明)

使用代碼生成器的service層需要繼承extends IService,這是一個(gè)坑,它不可以在接口工程中使用,實(shí)體類(lèi)可以

如果想要使用mp的功能,就需要:

—— > 1.接口工程中創(chuàng)建無(wú)extends IService的接口 A

—— > 2.provider工程中放入代碼生成的service層 接口B

—— > 3.provider工程的實(shí)現(xiàn)類(lèi)需要 implements A,B

代碼

接口工程

import com.study.seckill.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;

@Service
@FeignClient(value = "seckill-provider-localhost")
public interface IUserService /*extends IService<User>*/ {

    @RequestMapping(value = "/users",method = RequestMethod.GET)
    public List<User> quallAll();

}

接口工程依賴(lài)

<dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generate</artifactId>
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-extension</artifactId>
      <version>3.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>

–注意不要有druid數(shù)據(jù)源依賴(lài),可能會(huì)報(bào)sqlSession等異常–

consumer工程代碼

controller

@RestController
public class UserConsumerController {

    @Autowired
    private IUserService iUserService;

    @GetMapping(value = "/users")
    public  String queryByName(){
        List<User> users = iUserService.quallAll();
        return users.toString();
    }
    
}

啟動(dòng)類(lèi)

@EnableFeignClients(basePackages = {"com.study.seckill"})
@SpringBootApplication
@EnableEurekaClient
public class Seckill_Consumer_8080 {
    public static void main(String[] args) {
        SpringApplication.run(Seckill_Consumer_8080.class, args);
    }
}

consumer依賴(lài)

 <dependencies>
    <dependency>
      <groupId>com.study</groupId>
      <artifactId>seckill-api</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-ribbon</artifactId>
      <version>1.4.6.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
      <version>1.4.6.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-hystrix</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
    </dependency>
  </dependencies>

consumer的application.yml

server:
  port: 8080
#配置eureka
eureka:
  client:
    register-with-eureka: true
    service-url:
      defaultZone: http://localhost:7001/eureka/
  instance:
    instance-id: seckill-consumer-8080
    prefer-ip-address: true
spring:
  application:
    name: seckill-consumer-8080

#開(kāi)啟降級(jí)
feign:
#  hystrix:
#    enabled: true

#feign客戶(hù)端負(fù)載均衡策略
#seckill-provider-localhost:
#  ribbon:
#
##   NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #配置規(guī)則 隨機(jī)
#    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule #配置規(guī)則 輪詢(xún)
##   NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RetryRule #配置規(guī)則 重試
##   NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule #配置規(guī)則 響應(yīng)時(shí)間權(quán)重
##   NFLoadBalancerRuleClassName: com.netflix.loadbalancer.BestAvailableRule #配置規(guī)則 最空閑連接策略
#    ConnectTimeout: 5000 #請(qǐng)求連接超時(shí)時(shí)間
#    ReadTimeout: 10000 #請(qǐng)求處理的超時(shí)時(shí)間
#    OkToRetryOnAllOperations: true #對(duì)所有請(qǐng)求都進(jìn)行重試
#    MaxAutoRetriesNextServer: 2 #切換實(shí)例的重試次數(shù)
#    MaxAutoRetries: 2 #對(duì)當(dāng)前實(shí)例的重試次數(shù)

prodvider工程

如圖:UserServiceImpl 需要實(shí)現(xiàn)這個(gè)UserService和IUserService

service層結(jié)構(gòu)

import com.baomidou.mybatisplus.extension.service.IService;
import com.study.seckill.entity.User;
public interface UserService  extends IService<User> {
}
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.study.seckill.entity.User;
import com.study.seckill.mapper.UserMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.study.seckill.service.IUserService;
import com.study.seckill.service.UserService;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService, UserService {

    @Override
    public List<User> quallAll() {
        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
        return baseMapper.selectList(null);
    }
}

provider的application.properties

mybatis-plus.type-aliases-package=com.study.seckill.entity
mybatis-plus.global.config.refresh-mapper=true
mybatis-plus.mapper-locations=classpath:/mapper/**/*.xml

provider依賴(lài)

<dependencies>
    <dependency>
      <groupId>com.study</groupId>
      <artifactId>seckill-api</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>


    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.1.1</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>3.1.1</version>
    </dependency>
    <!--用來(lái)支持AR-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generate</artifactId>
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-extension</artifactId>
      <version>3.1.1</version>
    </dependency>
    <!--自動(dòng)生成模板-->
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.29</version>
    </dependency>

    <!--連接池-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.12</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-test</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

  </dependencies>

  <build>
    <!-- 添加資源 -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <!-- src/main/resources下的指定資源放行 -->
        <includes>
          <include>**/*.properties</include>
          <include>**/*.yml</include>
          <include>**/**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>
</project>

provider工程需要配置druid數(shù)據(jù)源,不然會(huì)報(bào)異常,這里不再贅述。

總結(jié)

在搭建工程上踩了兩天坑。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot生成Excel文件的實(shí)現(xiàn)示例

    SpringBoot生成Excel文件的實(shí)現(xiàn)示例

    本文介紹了Spring Boot項(xiàng)目中生成Excel文件,使用了Apache POI庫(kù),包括poi和poi-ooxml依賴(lài),通過(guò)遍歷用戶(hù)信息列表,將數(shù)據(jù)寫(xiě)入Excel文件,感興趣的可以了解一下
    2025-02-02
  • List轉(zhuǎn)變?yōu)槎禾?hào)分隔的String(Java7和Java8分別實(shí)現(xiàn))

    List轉(zhuǎn)變?yōu)槎禾?hào)分隔的String(Java7和Java8分別實(shí)現(xiàn))

    這篇文章主要介紹了Java7和Java8分別實(shí)現(xiàn)List轉(zhuǎn)變?yōu)槎禾?hào)分隔的String,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例

    MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例

    本文主要介紹了MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Javaweb動(dòng)態(tài)開(kāi)發(fā)最重要的Servlet詳解

    Javaweb動(dòng)態(tài)開(kāi)發(fā)最重要的Servlet詳解

    動(dòng)態(tài)web的核心是Servlet,由tomcat解析并執(zhí)行,本質(zhì)是Java中的一個(gè)類(lèi)(面向?qū)ο螅┻@個(gè)類(lèi)的功能十分強(qiáng)大幾乎可以完成全部功能,在Java規(guī)范中只有Servlet實(shí)現(xiàn)類(lèi)實(shí)例化的對(duì)象才能被瀏覽器訪問(wèn),所以掌握Servlet具有重要意義
    2022-08-08
  • Spring中BeanFactory?FactoryBean和ObjectFactory的三種的區(qū)別

    Spring中BeanFactory?FactoryBean和ObjectFactory的三種的區(qū)別

    關(guān)于FactoryBean?和?BeanFactory的對(duì)比文章比較多,但是對(duì)ObjectFactory的描述就比較少,今天我們對(duì)比下這三種的區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • Java ConcurrentModificationException異常解決案例詳解

    Java ConcurrentModificationException異常解決案例詳解

    這篇文章主要介紹了Java ConcurrentModificationException異常解決案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • MyBatis+Calcite實(shí)現(xiàn)多數(shù)據(jù)庫(kù)SQL自動(dòng)適配的詳細(xì)指南

    MyBatis+Calcite實(shí)現(xiàn)多數(shù)據(jù)庫(kù)SQL自動(dòng)適配的詳細(xì)指南

    在當(dāng)今企業(yè)IT環(huán)境中,數(shù)據(jù)庫(kù)異構(gòu)性已成為常態(tài),根據(jù)DB-Engines最新調(diào)研,超過(guò)78%的企業(yè)同時(shí)使用兩種以上數(shù)據(jù)庫(kù)系統(tǒng),所以本文就來(lái)為大家介紹一下如何基于MyBatis+Calcite實(shí)現(xiàn)多數(shù)據(jù)庫(kù)SQL自動(dòng)適配吧
    2025-04-04
  • Spring?boot?集成?MQTT詳情

    Spring?boot?集成?MQTT詳情

    這篇文章主要介紹了Spring?boot?集成?MQTT詳情,MQTT是一種基于發(fā)布/訂閱模式的"輕量級(jí)"通訊協(xié)議,可以以極少的代碼和有限的帶寬為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服,下文更多相關(guān)介紹,需要的小伙伴可以參考一下
    2022-04-04
  • SpringBoot跨域問(wèn)題的五種解決方式

    SpringBoot跨域問(wèn)題的五種解決方式

    前后端分離開(kāi)發(fā)中,跨域問(wèn)題是很常見(jiàn)的一種問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于SpringBoot跨域問(wèn)題的五種解決方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • mybatis一對(duì)多兩種mapper寫(xiě)法實(shí)例

    mybatis一對(duì)多兩種mapper寫(xiě)法實(shí)例

    這篇文章主要介紹了mybatis一對(duì)多兩種mapper寫(xiě)法實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12

最新評(píng)論

杨浦区| 灵台县| 高陵县| 白沙| 五家渠市| 从江县| 三原县| 浦北县| 江陵县| 夏津县| 祁阳县| 屯昌县| 永仁县| 鄂州市| 阿拉善右旗| 盐源县| 万安县| 萍乡市| 泸州市| 班戈县| 广平县| 饶河县| 博客| 秦皇岛市| 白沙| 邛崃市| 芜湖县| 新干县| 浑源县| 晴隆县| 邵武市| 绍兴市| 宁波市| 安图县| 苍溪县| 广南县| 德昌县| 赣榆县| 建湖县| 措美县| 大城县|