电商平台实时监控系统遇到的问题及解决

1、@Autowired 注入为null的解决方法

  • 使用springboot中的JPA方法来和mysql数据库websocket_db进行连接
@Repository
public interface SellerRepository extends JpaRepository<Seller, Integer> {
}
  • 在这个websocket的连接中发现SellerRepository注入值为null
    在这里插入图片描述
  • 但是,我在测试类中已经该接口进行测试了,发现该接口可以获取数据,因此,我的猜想时,WebSocketServer中某些类或方法的使用加载顺序高于SellerRepository,SellerRepository还没有注入的情况下就被获取使用。
@SpringBootTest
public class SellerRepositoryTest {
    @Autowired
    private SellerRepository sellerRepository;

    @Test
    void findAll() {
        List<Seller> all = sellerRepository.findAll();
        System.out.println(all);
    }
}

2、JSON字符串和对象理解不清

{
    "action":"getData",
    "socketType":"sellerData",
    "chartName":"seller",
    "value":"",
    "data":"[{\n    \"name\": \"商家1\",\n    \"value\": 99\n}, {\n    \"name\": \"商家2\",\n    \"value\": 102\n}, {\n    \"name\": \"商家3\",\n    \"value\": 83\n}, {\n    \"name\": \"商家4\",\n    \"value\": 49\n}, {\n    \"name\": \"商家5\",\n    \"value\": 200\n}, {\n    \"name\": \"商家6\",\n    \"value\": 152\n}, {\n    \"name\": \"商家7\",\n    \"value\": 76\n}, {\n    \"name\": \"商家8\",\n    \"value\": 23\n}, {\n    \"name\": \"商家9\",\n    \"value\": 87\n}, {\n    \"name\": \"商家10\",\n    \"value\": 223\n}, {\n    \"name\": \"商家11\",\n    \"value\": 145\n}, {\n    \"name\": \"商家12\",\n    \"value\": 187\n},{\n    \"name\": \"商家13\",\n    \"value\": 127\n},{\n    \"name\": \"商家14\",\n    \"value\": 57\n},{\n    \"name\": \"商家15\",\n    \"value\": 99\n}]"
}

data这一个数据里面包含着许多字符\n,并且在data后面("data":"[{\n)还包含一个"字符,说明这里是一个字符串,在我书写代码中返回的数据格式如下:

{
    "socketType":"sellerData",
    "chartName":"seller",
    "data":[
        {
            "name":"商家1",
            "value":99
        },
        {
            "name":"商家2",
            "value":102
        },
        {
            "name":"商家3",
            "value":83
        },
        {
            "name":"商家4",
            "value":49
        },
        {
            "name":"商家5",
            "value":200
        },
        {
            "name":"商家6",
            "value":152
        },
        {
            "name":"商家7",
            "value":76
        },
        {
            "name":"商家8",
            "value":23
        },
        {
            "name":"商家9",
            "value":87
        },
        {
            "name":"商家10",
            "value":223
        },
        {
            "name":"商家11",
            "value":145
        },
        {
            "name":"商家12",
            "value":187
        },
        {
            "name":"商家13",
            "value":127
        },
        {
            "name":"商家14",
            "value":57
        },
        {
            "name":"商家15",
            "value":99
        }
    ],
    "action":"getData",
    "value":""
}
  • 在这里,我采用的代码如下,导致前端无法解析后端返回的字符串。
payload.put("data", sellerVos);
  • 正确书写方式如下:
payload.put("data", JSON.toJSONString(sellerVos));

此时,获取到的数据格式如下,前端能够正确解析:

{
    "socketType":"sellerData",
    "chartName":"seller",
    "data":"[{\"name\":\"商家1\",\"value\":99},{\"name\":\"商家2\",\"value\":102},{\"name\":\"商家3\",\"value\":83},{\"name\":\"商家4\",\"value\":49},{\"name\":\"商家5\",\"value\":200},{\"name\":\"商家6\",\"value\":152},{\"name\":\"商家7\",\"value\":76},{\"name\":\"商家8\",\"value\":23},{\"name\":\"商家9\",\"value\":87},{\"name\":\"商家10\",\"value\":223},{\"name\":\"商家11\",\"value\":145},{\"name\":\"商家12\",\"value\":187},{\"name\":\"商家13\",\"value\":127},{\"name\":\"商家14\",\"value\":57},{\"name\":\"商家15\",\"value\":99}]",
    "action":"getData",
    "value":""
}
  • 前端页面的返回结果为:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值