Java - stage04 - day04 - Socket - 配置中心

本文介绍了如何使用Java实现简单的TCP服务器和浏览器客户端,并探讨了Nacos配置中心的配置步骤,包括在`application.yml`中设置服务器地址、引入依赖、添加配置以及在控制器中使用配置中心进行日志级别动态调整。
摘要由CSDN通过智能技术生成

1. Java网络编程

  1. Server端
package com.jt.common.net;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Tomcat {
    public static void main(String[] args) throws IOException {
        //1.创建服务
        ServerSocket server = new ServerSocket(9999);
        System.out.println("server start ...");
        //2.启动服务监听
        while(true) {
            //监听客户端的链接
            Socket socket = server.accept();    //阻塞方法
            System.out.println("连接已建立");
            //创建输出流对象,向客户端输出hello client
            OutputStream out = socket.getOutputStream();
            byte[] responseContent = ("HTTP/1.1 200 ok \r\n" +
                    "Content-Type:text/html;charset=utf-8 \r\n" +
                    "\r\n" +
                    "<h2>hello client</h2>").getBytes();
            out.write(responseContent);
            out.flush();
        }
    }
}
  1. Browser端
package com.jt.common.net;

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;

/**
 * 模拟浏览器
 */
public class Browser {
    public static void main(String[] args) throws IOException {
        //1. 创建网络编程中的客户端对象(Socket)
        Socket socket = new Socket("127.0.0.1", 9999);
        //2. 创建输入流对象,读取服务端写到客户端的数据
        InputStream in = socket.getInputStream();
        byte[] buf = new byte[1024];
        int len = in.read(buf);
        String content = new String(buf, 0, len);
        System.out.println(content);
        //3. 释放资源
        socket.close();
    }
}

2. 配置中心

2.1. 修改application.yml

spring:
  application:
    name: sca-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848 #定义配置中心地址
        file-extension: yml #定义配置中心配置的格式

2.2 添加依赖

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

2.3 配置中心增加配置

在这里插入图片描述

2.4 修改配置文件名称

resource / application.yml => resource / bootstrap.yml

2.5 控制器

package com.jt.provider.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 基于此Controller演示配置中心的作用,
 * 在这个Controller中我们会基于日志对象
 * 进行日志输出测试
 */
@RefreshScope   //告诉系统底层,配置中心内容发生变化,重新构建此对象
@RestController
public class ProviderLogController {
    //假如在log对象所在的类上使用了@Slf4j,log不需要我们手动创建,lombok会帮我们创建
    private static Logger log = LoggerFactory.getLogger(ProviderLogController.class);

    @GetMapping("/provider/log/doLog01")
    public String doLog01() {
        //trace < debug < info < warn < error
        log.trace("===trace===");
        log.debug("===debug===");
        log.info("===info===");
        log.warn("===warn===");
        log.error("===error===");
        return "log config test";
    }

    public ProviderLogController() {
        System.out.println("==ProviderLogController()==");
    }

    @Value("${logging.level.com.jt}")
    private String logLevel;
    @GetMapping("/provider/log/doLog02")
    public String doLog02() {
        log.info("log.level is {}", logLevel);  //这里的{}表示占位符
        return "log level is " + logLevel;
    }
}

@RefreshScope 注解的作用是在配置中心的相关配置发生变化以后,
能够及时看到类中属性值的更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值