学习开发笔记2024.9.9

1,Vue.js 状态管理与使用

<template> 中,可以通过 $store.state 来直接访问 Vuex 的状态。

<template>
  <div>{{ $store.state.someData }}</div>
</template>

setup() 中使用 store:需要在 <script> 中通过 useStore() 来获取 store 实例。

import { useStore } from 'vuex';

export default {
  setup() {
    const store = useStore();
    console.log(store.state.someData);
  }
};

2,HTTP 和 WebSocket 数据通信

HTTP 通信:后端使用 @PostMapping 等注解来接收前端请求,通常通过 Map 或者实体类来传输前后端的参数和数据。

@PostMapping("/api/data")
public ResponseEntity<String> handleData(@RequestBody Map<String, Object> data) {
    // 处理前端传来的数据
    return ResponseEntity.ok("Success");
}

WebSocket 通信:WebSocket 协议是全双工通信,可以使用 JSON 数据对象实现前后端通信。

JSON对象要转化为String来传递

前端使用 socket.send() 发送信息,通过 socket.onmessage 接收后端的信息:

socket.send(JSON.stringify({ message: 'Hello' }));

socket.onmessage = msg => {
  const data = JSON.parse(msg.data);
  console.log(data);
};

后端通过 WebSocket Server 类中的 @OnMessage 接收信息,并使用 sendMessage 方法发送信息:

@OnMessage
public void onMessage(String message, Session session) {
    JSONObject data = JSONObject.parseObject(message);
    // 接收并处理信息
    
}

public void sendMessage(Session session, String message) throws IOException {
    session.getBasicRemote().sendText(message);
}

3,WebSocket 中 Mapper 调用的不同

        HTTP 协议中的 Mapper:通常通过 @Autowired 注解直接注入 Mapper 实例,方便在服务类中调用。

@Autowired
private UserMapper userMapper;

        WebSocket 协议中的 Mapper:由于 WebSocket 中的类实例生命周期不同,不能直接使用 @Autowired 注入。需要将 Mapper 声明为 public static,并通过一个静态的 @Autowired 设置方法注入。

public static UserMapper userMapper;

@Autowired
public void setUserMapper(UserMapper userMapper) {
    WebSocketServer.userMapper = userMapper;
}


4,线程加锁(ReentrantLock)

   ReentrantLock 是 Java 中提供的可重入锁,允许线程在获取锁之后可以多次获取,不会发生死锁。适用于需要明确锁的获取和释放时机的场景。

5,RestTemplate 是 Spring 提供的用于发起 HTTP 请求的类,可以在后端中用于与其他服务进行通信。
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.postForObject("http://127.0.0.1:3000/user/", requestBody, String.class);

6,

!=:比较的是两个对象的内存地址,判断它们是否是同一个对象实例。

equals():比较的是两个对象的内容,判断它们的值是否相同(equals() 方法可以被重写以自定义比较逻辑)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值