Java微服务学习Day2

文章目录

Nacos配置管理

统一配置管理





在Controller层编辑测试类

java 复制代码
    @Value("${pattern.dateformat}")
    private String dateformat;
    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

结果

配置热更新


配置共享



搭建Nacos集群


Feign远程调用

介绍



新建接口类

java 复制代码
@FeignClient("userservice")
public interface UserClient {
    @GetMapping("/user/{id}")
    User findByID(@PathVariable("id") Long id);
}

服务端

java 复制代码
    @Autowired
    private UserClient userClient;
    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        //2.Feign远程调用,查询用户
        User user = userClient.findByID(order.getUserId());
        //3.封装User到Order
        order.setUser(user);
        // 4.返回
        return order;
    }

自定义配置




性能优化



最佳实践




Gateway服务网关

介绍


搭建网关服务




路由断言工厂

路由过滤器




全局过滤器


java 复制代码
@Component
@Order(-1)
public class AuthorizeFilter implements GlobalFilter {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //1.获取请求参数
        ServerHttpRequest request = exchange.getRequest();
        MultiValueMap<String, String> params = request.getQueryParams();
        //2.获取参数中的authorization参数
        String auth = params.getFirst("authorization");
        //3.判断参数值是否等于admin
        if ("admin".equals(auth)){
            //4. 是,放行
            return chain.filter(exchange);
        }
        //5. 否,拦截
        //5.1设置状态码
        exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
        //5.2拦截请求
        return exchange.getResponse().setComplete();
    }
}

过滤器执行顺序


跨域问题处理


相关推荐
camellias_2 小时前
【无标题】
java·tomcat
咸鱼2.03 小时前
【java入门到放弃】需要背诵
java·开发语言
星河耀银海3 小时前
远控体验分享:安全与实用性参考
人工智能·安全·微服务
椰猫子3 小时前
Java:异常(exception)
java·开发语言
龙文浩_3 小时前
Attention Mechanism: From Theory to Code
人工智能·深度学习·神经网络·学习·自然语言处理
win x4 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
星晨雪海4 小时前
基于 @Resource 的支付 Service 多实现类完整示例
java·开发语言
阿维的博客日记4 小时前
什么是逃逸分析
java·juc
Ricky_Theseus5 小时前
C++右值引用
java·开发语言·c++
Rick19935 小时前
Java内存参数解析
java·开发语言·jvm