feat(实验5): 添加银行系统和图书管理系统界面

- 新增 BankManagerSystem 和 BookManagerSystem 类
- 使用 JFormDesigner 设计并生成了相应的界面
- 添加了基本的事件处理方法
- 优化了界面布局和组件样式
This commit is contained in:
2025-05-19 11:26:26 +08:00
parent ab7ec43d97
commit 0f6ab9f93c
11 changed files with 1210 additions and 36 deletions

View File

@@ -136,6 +136,13 @@
<version>${mysqlconnect.version}</version>
</dependency>
<!-- Kafka -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>

View File

@@ -0,0 +1,47 @@
package date_20250513;
import org.apache.kafka.clients.consumer.*;
import org.apache.kafka.common.serialization.IntegerDeserializer;
import org.apache.kafka.common.serialization.StringDeserializer;
import java.time.Duration;
import java.util.Arrays;
import java.util.Properties;
/**
* 消费者类
*/
public class MyConsumer {
public static void main(String[] args) {
//1.使用Proerties定义配置属性
Properties props = new Properties();
//设置生产者Broker服务器连接地址
props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "hadoop102:9092");
//设置序列化key程序类
props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
//设置序列号化value程序类此处不一定是非得时Integer也可以是String
props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
//设置消费者组ID即组名称值可自定义组名称相同的消费者进程属于用一个消费者
props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "test-consumer-group4");
// 设置从头开始消费
props.put("auto.offset.reset", "earliest");
//2.定义消费者对象
Consumer<String, String> consumer = new KafkaConsumer<String, String>(props);
//3.设置消费者读取的主题名称,可以设置多个
consumer.subscribe(Arrays.asList("topic02"));
//4.不同的读取消息
while (true) {
System.out.println("打印开始");
//拉取消息并设置超时时间为10秒
ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(100));
for (ConsumerRecord<String, String> record : records) {
System.out.println(record.value() + ", " + record.partition() + ",offset: " + record.offset());
}
}
}
}

View File

@@ -0,0 +1,48 @@
package date_20250513;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.IntegerSerializer;
import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties;
/**
* 生产者类
*/
public class MyProducer {
public static void main(String[] args) {
//1.使用Proerties定义配置属性
Properties props = new Properties();
//设置生产者Broker服务器连接地址
props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "hadoop102:9092");
//指定topic
String topic = "topic02";
//设置序列化key程序类
props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
//设置序列号化value程序类此处不一定是非得时Integer也可以是String
props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
//2.定义消息生产者对象,依靠此对象可以进行消息的传递
Producer<String, String> producer = new KafkaProducer<String, String>(props);
//3.循环发送10条消息
for (int i = 0; i < 10; i++) {
//发送消息,此方式只负责发送消息,不关心是否发送成功
//第一个参数:主题名称
//第二个参数消息的key值
//第三个参数消息的value值
System.out.println(i);
//producer.send(new ProducerRecord<String, String>(topic,"hello to kafka" + i, String.valueOf(i)));
producer.send(new ProducerRecord<String, String>(topic, "hello to kafka" + i));
}
//4.关闭生产者,释放资源
producer.close();
}
}