zoukankan      html  css  js  c++  java
  • Spring Cloud-OpenFegin

    medical-manage-service项目的pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.fh</groupId>
            <artifactId>medical-manage</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.fh</groupId>
        <artifactId>medical-manage-server</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>medical-manage-server</name>
        <description>Demo project for Spring Boot</description>
    
        <dependencies>
            <!--引用feign依赖-->
            <dependency>
                <groupId>com.fh</groupId>
                <artifactId>medical-manage-feign</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <!--MySQL的依赖包-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <!--Mybatis-plus的jar资源-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.2.0</version>
            </dependency>
            <dependency>
                <groupId>com.fh</groupId>
                <artifactId>medical-util</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    
    </project>

    properties文件

    server.port=9100
    spring.application.name=medical-manage-service
    #注册到Eureka的注册中心
    eureka.client.register-with-eureka=true
    #获取注册实例列表
    eureka.client.fetch-registry=true
    #配置注册中心地址
    eureka.client.service-url.defaultZone=http://localhost:9090/eureka/
    
    #mysql配置信息
    spring.datasource.username= root
    spring.datasource.password= root
    spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
    spring.datasource.url= jdbc:mysql://localhost:3306/medical_system?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    #在控制太打印sql日志
    mybatis-plus.configuration.log-impl= org.apache.ibatis.logging.stdout.StdOutImpl
    #mybatis加载mapper映射文件
    mybatis-plus.mapper-locations=classpath*:mapper/*.xml
    
    debug= true
    #去掉一些没必要的检查
    logging.level.org.springframework.boot.autoconfigure= ERROR

    启动类

    @SpringBootApplication
    @EnableDiscoveryClient  //将服务注册到注册中心上
    @EnableFeignClients //启用 Feign 的客户端功能
    public class MedicalManageServiceApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MedicalManageServiceApplication.class, args);
        }
    
    }

    实体类

    @Data
    @TableName("system_user")
    public class UserLoginDTO implements Serializable {
        @TableId(value = "id",type = IdType.AUTO)
        private int id;
        @TableField("username")
        private String username;
        @TableField("password")
        private String password;
    }

    controller层测试方法

    @RestController
    @RequestMapping("login")
    @CrossOrigin(maxAge = 3600,origins = "http://localhost:8080")
    public class UserLoginController {
    
        @Autowired
        private IUserLoginService userLoginService;
    
        /**
         * 登录验证
         * @param userLoginDTO  用户数据
         * @return
         */
        @PostMapping("/loginCheckOut")
        public ResponseServer loginCheckOut(@RequestBody UserLoginDTO userLoginDTO){
            if (StringUtil.isBlank(userLoginDTO.getUsername()) && StringUtil.isBlank(userLoginDTO.getPassword()))
                return ResponseServer.error(ResponseEnum.ISNULL_INPUT);
            UserLoginDTO dbUser=userLoginService.queryUserByUsername(userLoginDTO.getUsername());
            if (dbUser!=null){
                if(dbUser.getPassword().equals(userLoginDTO.getPassword()))
                    return ResponseServer.success();
                else
                    return ResponseServer.error(ResponseEnum.PASSWORD_ERROR);
            }
            return ResponseServer.error(ResponseEnum.USER_NO_EXIST);
        }
    }

    medical-manage-feign项目的pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.fh</groupId>
            <artifactId>medical-manage</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.fh</groupId>
        <artifactId>medical-manage-feign</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>medical-manage-feign</name>
        <description>Demo project for Spring Boot</description>
    
        <dependencies>
            <!--eureka客户端-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
            <!--openfeign依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
            </dependency>
            <dependency>
                <groupId>com.fh</groupId>
                <artifactId>medical-util</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    
    </project>

    因为只是暴露出接口并不是作为一个单独的服务因此没有启动类。

    实体类

    @Data
    public class UserLoginDTO implements Serializable {
        private int id;
        private String username;
        private String password;
    }

    controller层测试调用接口

    @RestController
    @RequestMapping("user")
    public class UserLoginFeignController {
    
        @Autowired
        private UserLoginFeign userLoginFeign;
    
        @PostMapping("/loginCheckOut")
        public ResponseServer loginCheckOut(@RequestBody UserLoginDTO userLoginDTO){
            return userLoginFeign.loginCheckOut(userLoginDTO);
        }
    }

    fegin接口

    @FeignClient(value = "medical-manage-service")
    public interface UserLoginFeign {
    
        /**
         * 登录验证
         * @param userLoginDTO  用户数据
         * @return
         */
        @PostMapping("login/loginCheckOut")
        ResponseServer loginCheckOut(@RequestBody UserLoginDTO userLoginDTO);
    }

    postman输入http://localhost:9100/user/loginCheckOut进行测试,此处用户名故意输错得出结果。


    ...待完





  • 相关阅读:
    es6学习笔记
    vue.js项目目录结构说明
    js 数组操作总结
    js 数组去重方法
    HTTP协议三次握手过程
    MVC与MVVM模式对比
    谱面编辑器
    LL谱面分析和难度标定
    SLP的模块结构
    LL基本姿势
  • 原文地址:https://www.cnblogs.com/agoodmanisme/p/1bd832f9b0fab3dd9ebf4485e4a8c137.html
Copyright © 2011-2022 走看看