前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【微服务~高级】配置中心实战

【微服务~高级】配置中心实战

作者头像
陶然同学
发布2023-02-27 11:08:45
2750
发布2023-02-27 11:08:45
举报
文章被收录于专栏:陶然同学博客

👀专栏介绍

【微服务~高级】 目前主要更新微服务,一起学习一起进步。

👀本期介绍

本期主要介绍配置中心实战

文章目录

需求

基本环境

测试配置

默认

项目打包

nacos配置数据库

需求

  • 搭建用户测试服务

基本环境

  • 项目名:nacos-config-mysql-2.1
  • 添加坐标
代码语言:javascript
复制
<dependencies>
        <!-- web 启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- nacos 配置-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!--swagger2-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>

        <!-- mybatis plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>

        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--lombok , @Data 等-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>


    </dependencies>
  • 编写yml文件:bootstrap.yml
代码语言:javascript
复制
# 服务端口号
server:
  port: 7777
# 服务名
spring:
  application:
    name: user-service
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/cloud_db5?useUnicode=true&characterEncoding=utf8
    username: root
    password: 1234
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848     # nacos 服务地址
        prefix: user                   # 3.1 前缀,默认 ${spring.application.name}
        file-extension: yaml            # 3.2 后缀
        group: DEFAULT_GROUP            # 3.3 组名

#开启log4j打印SQL语句
logging:
  level:
    com:
      czxy:
        changgou4:
          mapper: debug

# mp日志打印
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  • 编写sql语句
代码语言:javascript
复制
create database cloud_db5;
use cloud_db5;
CREATE TABLE t_user(
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50)
);

create database cloud_db6;
use cloud_db6;
CREATE TABLE t_user(
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50)
);
  • 编写启动类
代码语言:javascript
复制
package com.czxy;

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

@SpringBootApplication
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class,args);
    }
}
  • 拷贝配置类
  • 编写domain  
代码语言:javascript
复制
package com.czxy.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;


@TableName("t_user")
@Data
public class User {

    @TableId(type = IdType.AUTO)        //自动增强
    private Integer id;

    private String username;
}
  • 编写mapper
代码语言:javascript
复制
package com.czxy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.czxy.domain.User;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface UserMapper extends BaseMapper<User> {
}
  • 编写service
    • 接口
代码语言:javascript
复制
package com.czxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.czxy.domain.User;

public interface UserService extends IService<User> {
}
  • 实现类
代码语言:javascript
复制
package com.czxy.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.czxy.domain.User;
import com.czxy.mapper.UserMapper;
import com.czxy.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


@Service
@Transactional
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
  • 编写controller
代码语言:javascript
复制
package com.czxy.controller;

import com.czxy.domain.User;
import com.czxy.service.UserService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;


@RestController
@RequestMapping("/user")
public class UserController {

    @Resource
    private UserService userService;

    @PostMapping
    public String save(@RequestBody User user) {
        //添加
        boolean result = userService.save(user);
        //返回
        if(result) {
            return "添加成功";
        }
        return "添加失败";
    }
}

测试配置

默认

  • 提供数据库:cloud_db5
  • 对t_user表进行操作

http://localhost:7777/swagger-ui.html

项目打包

  • 以jar包的方式运行(运维人员)
  • 修改pom.xml文件,添加插件,用于指定jar的启动类
代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!--启动类-->
                <mainClass>com.czxy.UserApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

打包

运行jar,在cmd命令窗口中

java -jar nacos-config-mysql-2.1-1.0-SNAPSHOT.jar 

nacos配置数据库

  • 提供数据库:cloud_db6
  • 在nacos中配置
代码语言:javascript
复制
server.port: 7776
spring.datasource.url: jdbc:mysql://127.0.0.1:3306/cloud_db6?useUnicode=true&characterEncoding=utf8
  • 必须操作:将服务重启 【不需要修改源码】
  • 测试
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 👀专栏介绍
  • 👀本期介绍
  • 文章目录
  • 需求
  • 基本环境
  • 测试配置
    • 默认
      • 项目打包
        • nacos配置数据库
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档