栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud

SpringCloud

开发环境:idea;mysql5.7及以上
技术方面:springMVC,springBoot,mybatis(sql), (hibernate HQL)
SpringCloud不是一个落地的技术,主要给我们提供的是各种解决方案(模块)
SpringBoot是正在落地后使用的技术(框架)
名称解释:
落地:项目中的具体模块功能搭建 添加 删除 修改 查询 各种检索功能分配等

作用

服务中心(注册):
Eureka,zookeeper(几乎淘汰),consul(几乎淘汰),nacos
服务调用:ribbon,loadbalancer(几乎淘汰),fegin,openFegin
服务降级:Hystrix,resilience4j(几乎淘汰),sentinel
服务网关:zuul,gateway
服务配置:config 服务总线:bus,nacos

配置IDEA





*.hprof;*.idea;*.iml;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc;
SpringCloud理解

创建项目

pom.xml配置



  4.0.0

  org.example
  SpringCloudLearn
  pom
  1.0-SNAPSHOT



  
    cloud_demo8001
  

  
    UTF-8
    1.8
    1.8
    4.12
    1.2.17
    1.2.17
    5.1.47
    1.1.16
    1.3.8
  

  
    
      
      
        org.springframework.boot
        spring-boot-dependencies
        2.2.2.RELEASE
        pom
        import
      


      
      
        org.springframework.cloud
        spring-cloud-dependencies
        Hoxton.SR1
        pom
        import
      



      
      
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.2.0.RELEASE
        pom
        import
      



      
      
        mysql
        mysql-connector-java
        ${mysql.version}
      
      
      
        com.alibaba
        druid-spring-boot-starter
        ${druid.verison}
      
      
      
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        ${mybatis.spring.boot.verison}
      
      
      
        org.projectlombok
        lombok
        ${lombok.version}
      
      
      
        junit
        junit
        ${junit.version}
      
      
      
        log4j
        log4j
        ${log4j.version}
      
    
  

  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
        2.2.1.RELEASE
        
          true
          true
        
      
    
  


注:工程中的pom.xml并没有真正下载包,只是对包进行规范

搭建项目




pom.xml:



    
        SpringCloudLearn
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    cloud_demo8001



    
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.0

        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.17
        
        
            mysql
            mysql-connector-java
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            1.16.18
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
        

    


在resources文件夹下创建File类型

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service #服务名称
  zipkin:
    base-url: http://localhost:9411
    sleuth:
      sampler:
        probability: 1
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  #当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver
    url: jdbc:mysql://localhost:3306/cloud?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
    username: root
    password: root


mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.yangluyao.springcloud.entities  #所有entity别名所在包
补充,使用SpringCloud统一管理版本

项目的pom.xml:




  4.0.0

  org.example
  SpringCloudLearn
  pom
  1.0-SNAPSHOT



  
    cloud_demo8001
    cloud_demo8001
  

  
    UTF-8
    1.8
    1.8
    4.12
    1.2.17
    1.16.18
    5.1.47
    1.1.17
    1.3.8
  

  
    
      
      
        org.springframework.boot
        spring-boot-dependencies
        2.2.2.RELEASE
        pom
        import
      


      
      
        org.springframework.cloud
        spring-cloud-dependencies
        Hoxton.SR1
        pom
        import
      



      
      
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.2.0.RELEASE
        pom
        import
      



      
      
        mysql
        mysql-connector-java
        ${mysql.version}
      
      
      
        com.alibaba
        druid-spring-boot-starter
        ${druid.verison}
      
      
      
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        ${mybatis.spring.boot.verison}
      
      
      
        org.projectlombok
        lombok
        ${lombok.version}
      
      
      
        junit
        junit
        ${junit.version}
      
      
      
        log4j
        log4j
        ${log4j.version}
      
    
  

  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
        2.2.1.RELEASE
        
          true
          true
        
      
    
  


主要在properties中管理版本,下面都是引用,子项目中就可以不写版本号,更改版本时可以统一更改,维护性更强

模块书写顺序 1.创建application.xml文件

注意:若不是叶子图标,先看看eureka是否注入,再看FileTypes中的Text里面是否包含application.xml,若有则移除

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service #服务名称
  zipkin:
    base-url: http://localhost:9411
    sleuth:
      sampler:
        probability: 1
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  #当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver
    url: jdbc:mysql://localhost:3306/cloud?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
    username: root
    password: root


mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.yangluyao.springcloud.entities  #所有entity别名所在包

2.搭建项目包

在java下创建包,mvc模式

3.创建实体类

有了lombok创建实体极其方便

package com.clouddemo.entities;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data                   //省略getter and setter代码
@AllArgsConstructor     //省略有参构造代码
@NoArgsConstructor      //省略无参构造代码
public class TabUsers {
    private String id;
    private String loginname;
    private String password;
    private String username;
}
4.创建dao,以及对应的mapper.xml

dao里面注意要有@Mapper注解
dao:

package com.clouddemo.dao;

import com.clouddemo.entities.TabUsers;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface TabUserDao {
    public List findall();

}


mapper.xml:






注意mapper.xml通过namespace来找到对应dao,点“.”的时候Idea会自动查询,找到直接回车即可

5.创建service和Impl

注意实现里要加@Service注解
service:

package com.clouddemo.service;

import com.clouddemo.entities.TabUsers;

import java.util.List;

public interface TabUsersService {
    public List findall();
}


serviceImpl:

package com.clouddemo.service.Impl;

import com.clouddemo.dao.TabUserDao;
import com.clouddemo.entities.TabUsers;
import com.clouddemo.service.TabUsersService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class TabUsersServiceImpl implements TabUsersService {
    @Resource
    private TabUserDao dao;

    @Override
    public List findall() {
        List l=dao.findall();
        return l;
    }
}

注意这里不用@Autowired注解,而是采用源的方式(官方网站规定)

6.创建Controller
package com.clouddemo.controller;

import com.clouddemo.entities.TabUsers;
import com.clouddemo.service.TabUsersService;
import javafx.scene.control.Tab;
import lombok.extern.slf4j.Slf4j;

import net.minidev.json.JSONArray;

import net.minidev.json.JSONObject;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

@RestController //Controller注解
@Slf4j          //log4j日志注解
public class TabUsersController {
    @Resource
    private TabUsersService service;

    @GetMapping(value = "tab_users_findall")
    public String tab_users_findall() {
        JSONArray jsonArray=new JSONArray();
        List list=service.findall();
        for (TabUsers t:list) {
            JSONObject jo=new JSONObject();
            String id=t.getId();
            String loginname=t.getLoginname();
            String password=t.getPassword();
            String username=t.getUsername();
            jo.put("id",id);
            jo.put("username",username);
            jo.put("loginname",loginname);
            jo.put("password",password);
            jsonArray.add(jo);

        }
        return jsonArray.toJSONString();
    }
}


注意:对数据库进行增删改的时候使用@PostMapping

7.创建启动类
package com.clouddemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application8001 {
    public static void main(String arges[]){
        SpringApplication.run(Application8001.class,arges);
    }
}

注意要放在包下

8.测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号