学习时Nacos热部署遇见java.lang.NullPointerException: pattern错误

在学习黑马的spring cloud第26集时,访问:http://localhost:8081/user/now正常访问,但访问http://localhost:8082/user/now出现空指针异常的错误

 

相关配置

d3d7dd7e3fcc4f89a5d25df30946282b.png

代码:

bootstrap.yml

spring:
  application:
    name: userservice
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名

application.yml

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud-user?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss
pattern:
  name: 本地环境local
package cn.itcast.user.web;

import cn.itcast.user.config.PatternProperties;
import cn.itcast.user.pojo.User;
import cn.itcast.user.service.UserService;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

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

    @Autowired
    private UserService userService;

    @Value("${logging.pattern.dateformat}")
    private String dateformat;
    
    @Autowired
    private PatternProperties properties;

    @GetMapping("prop")
    public PatternProperties properties(){
        return properties;
    }

    @GetMapping("/now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));
    }

    /**
     * 路径: /user/110
     *
     * @param id 用户id
     * @return 用户
     */
    @GetMapping("/{id}")
    public User queryById(@PathVariable("id") Long id,
                          @RequestHeader(value = "Truth", required = false) String truth) {
        System.out.println("truth: " + truth);
        return userService.queryById(id);
    }
}

运行结果

8ce867ea24e24e82bc5a2e34af31586e.png

2e742e6168c44b278a4b81d30ec4d38f.png

e8b43e7fc9c34574a94c5031d252d970.png

内心OS(嘴巴张大大,8081都能访问,8082不能访问???)

 

解决过程

查看弹幕,发现说要引入spring-cloud-starter-bootstrap

9fdddac728bf4802a91ff3ca32011ca9.png

引入之后8081正常,但是8082仍然出现空指针异常的错误

 

后面经过无数次更改发现是配置文件引用的问题

338158cf5d3440818b905288df42bda3.png

将配置文件关于dateformat修改   (dateformat不小心写在logging下面)

logging:
  level:
    cn.itcast: debug
pattern:
  dateformat: MM-dd HH:mm:ss

将原来的 @Value("${logging.pattern.dateformat}")改成 @Value("${pattern.dateformat}")

 

解决成功

c2e5f64c90344f1b929e4cd9966e5b63.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值