diff --git a/fabudingyuemoshi/.gitignore b/fabudingyuemoshi/.gitignore
new file mode 100644
index 0000000..682d4ed
--- /dev/null
+++ b/fabudingyuemoshi/.gitignore
@@ -0,0 +1,27 @@
+# Created by .ignore support plugin (hsz.mobi)
+### Java template
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+/.idea/
+/target/
diff --git a/fabudingyuemoshi/fanfu-web.iml b/fabudingyuemoshi/fanfu-web.iml
new file mode 100644
index 0000000..4fb2f38
--- /dev/null
+++ b/fabudingyuemoshi/fanfu-web.iml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fabudingyuemoshi/pom.xml b/fabudingyuemoshi/pom.xml
new file mode 100644
index 0000000..7d184ca
--- /dev/null
+++ b/fabudingyuemoshi/pom.xml
@@ -0,0 +1,68 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.3.9.RELEASE
+
+
+
+ com.ayi
+ woniu-web
+ 0.0.1-SNAPSHOT
+ woniou-web
+ create by woniu
+
+ jar
+
+
+ 1.8
+
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.29
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.2
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.projectlombok
+ lombok
+
+
+ org.assertj
+ assertj-core
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/WoNiuApplication.java b/fabudingyuemoshi/src/main/java/com/woniu/WoNiuApplication.java
new file mode 100644
index 0000000..7c5f525
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/WoNiuApplication.java
@@ -0,0 +1,24 @@
+package com.woniu;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@SpringBootApplication
+@EnableScheduling
+@Slf4j
+@EnableAsync
+public class WoNiuApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(WoNiuApplication.class, args);
+ log.info("test_info");
+ log.error("test_error");
+ log.warn("test_warn");
+ }
+
+
+
+}
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderLogListener.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderLogListener.java
new file mode 100644
index 0000000..f8e902c
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderLogListener.java
@@ -0,0 +1,17 @@
+package com.woniu.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class OrderLogListener {
+
+ @EventListener
+ @Async("asyncExecutor")
+ public void orderLog(SaveOrderEvent event) {
+ log.info("[afterSaveOrder] log.");
+ }
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderMetricsListener.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderMetricsListener.java
new file mode 100644
index 0000000..fea1cf0
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderMetricsListener.java
@@ -0,0 +1,17 @@
+package com.woniu.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class OrderMetricsListener {
+
+ @EventListener
+ @Async("asyncExecutor")
+ public void metrics(SaveOrderEvent event) {
+ log.info("[afterSaveOrder] metrics");
+ }
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderNotifyListener.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderNotifyListener.java
new file mode 100644
index 0000000..ede1846
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderNotifyListener.java
@@ -0,0 +1,18 @@
+package com.woniu.service;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class OrderNotifyListener {
+
+ @EventListener
+ @Async("asyncExecutor")
+ public void notify(SaveOrderEvent event) {
+ log.info("[afterSaveOrder] notify.");
+ }
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderReqVO.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderReqVO.java
new file mode 100644
index 0000000..18ede90
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderReqVO.java
@@ -0,0 +1,5 @@
+package com.woniu.service;
+
+
+public class OrderReqVO {
+}
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderResVO.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderResVO.java
new file mode 100644
index 0000000..75fd756
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderResVO.java
@@ -0,0 +1,4 @@
+package com.woniu.service;
+
+public class OrderResVO {
+}
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderService.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderService.java
new file mode 100644
index 0000000..a7d4a59
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderService.java
@@ -0,0 +1,11 @@
+package com.woniu.service;
+
+/**
+ * @className: OrderService
+ * @author: woniu
+ * @date: 2023/3/25
+ **/
+public interface OrderService {
+
+ public OrderResVO saveOrder(OrderReqVO reqVO);
+}
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/OrderServiceImpl.java b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderServiceImpl.java
new file mode 100644
index 0000000..4291fd9
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/OrderServiceImpl.java
@@ -0,0 +1,32 @@
+package com.woniu.service;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.stereotype.Service;
+
+/**
+ * SpringBoot项目实现发布订阅模式,真的很简单!
+ */
+@Service
+@Slf4j
+public class OrderServiceImpl implements OrderService {
+ @Autowired
+ private ApplicationEventPublisher applicationEventPublisher;
+
+ /**
+ * 下单
+ */
+ @Override
+ public OrderResVO saveOrder(OrderReqVO reqVO) {
+ log.info("[placeOrder] start.");
+ OrderResVO resVO = new OrderResVO();
+ //消息
+ SaveOrderEventMessage eventMessage = new SaveOrderEventMessage();
+ //发布事件
+ applicationEventPublisher.publishEvent(new SaveOrderEvent(eventMessage));
+ log.info("[placeOrder] end.");
+ return resVO;
+ }
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/SaveOrderEvent.java b/fabudingyuemoshi/src/main/java/com/woniu/service/SaveOrderEvent.java
new file mode 100644
index 0000000..d7a7244
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/SaveOrderEvent.java
@@ -0,0 +1,11 @@
+package com.woniu.service;
+
+
+import org.springframework.context.ApplicationEvent;
+
+public class SaveOrderEvent extends ApplicationEvent {
+
+ public SaveOrderEvent(SaveOrderEventMessage source) {
+ super(source);
+ }
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/SaveOrderEventMessage.java b/fabudingyuemoshi/src/main/java/com/woniu/service/SaveOrderEventMessage.java
new file mode 100644
index 0000000..9afc82b
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/SaveOrderEventMessage.java
@@ -0,0 +1,21 @@
+package com.woniu.service;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SaveOrderEventMessage implements Serializable {
+ /**
+ * 订单号
+ */
+ private String orderId;
+ /**
+ * 订单状态
+ */
+ private Integer orderStatus;
+ /**
+ * 下单用户ID
+ */
+ private String userId;
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/java/com/woniu/service/TaskPoolConfig.java b/fabudingyuemoshi/src/main/java/com/woniu/service/TaskPoolConfig.java
new file mode 100644
index 0000000..3c55dde
--- /dev/null
+++ b/fabudingyuemoshi/src/main/java/com/woniu/service/TaskPoolConfig.java
@@ -0,0 +1,26 @@
+package com.woniu.service;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Configuration
+public class TaskPoolConfig {
+
+ @Bean(name = "asyncExecutor")
+ public Executor taskExecutor() {
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ //随便写的一些配置
+ executor.setCorePoolSize(10);
+ executor.setMaxPoolSize(20);
+ executor.setQueueCapacity(200);
+ executor.setKeepAliveSeconds(60);
+ executor.setThreadNamePrefix("asyncExecutor-");
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ return executor;
+ }
+}
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/resources/application.properties b/fabudingyuemoshi/src/main/resources/application.properties
new file mode 100644
index 0000000..50fb150
--- /dev/null
+++ b/fabudingyuemoshi/src/main/resources/application.properties
@@ -0,0 +1,14 @@
+
+#mybatis.config-location=classpath:/mybatis-config.xml
+
+#context.initializer.classes
+#context.initializer.classes=com.fanfu.config.MyApplicationContextInitializer
+
+server.port=8088
+mybatis-plus.mapper-locations=classpath*:/mapper/*.xml
+
+
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+spring.datasource.username=root
+spring.datasource.password=123456
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/resources/application.yml b/fabudingyuemoshi/src/main/resources/application.yml
new file mode 100644
index 0000000..6f09b0d
--- /dev/null
+++ b/fabudingyuemoshi/src/main/resources/application.yml
@@ -0,0 +1,12 @@
+#apiVersion: extensions/v1beta1
+#kind: Ingress
+#metadata:
+# name: web
+#spec:
+# rules:
+# - host: tomcat6.atguigu.com
+# http:
+# paths:
+# - backend:
+# serviceName: tomcat6
+# servicePort: 80
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/resources/mapper/AuthorsMapper.xml b/fabudingyuemoshi/src/main/resources/mapper/AuthorsMapper.xml
new file mode 100644
index 0000000..3b4c2fb
--- /dev/null
+++ b/fabudingyuemoshi/src/main/resources/mapper/AuthorsMapper.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/main/resources/sql.sql b/fabudingyuemoshi/src/main/resources/sql.sql
new file mode 100644
index 0000000..4a98c46
--- /dev/null
+++ b/fabudingyuemoshi/src/main/resources/sql.sql
@@ -0,0 +1,9 @@
+CREATE TABLE `authors` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `first_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
+ `last_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
+ `email` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
+ `birthdate` date NOT NULL,
+ `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10095 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
\ No newline at end of file
diff --git a/fabudingyuemoshi/src/test/java/com/woniu/TestA.java b/fabudingyuemoshi/src/test/java/com/woniu/TestA.java
new file mode 100644
index 0000000..5311f25
--- /dev/null
+++ b/fabudingyuemoshi/src/test/java/com/woniu/TestA.java
@@ -0,0 +1,26 @@
+package com.woniu;
+
+import com.woniu.service.OrderService;
+import com.woniu.service.OrderReqVO;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class TestA {
+
+
+ @Autowired
+ private OrderService orderService;
+
+
+ @Test
+ public void placeOrder() {
+ OrderReqVO orderReqVO = new OrderReqVO();
+ orderService.saveOrder(orderReqVO);
+ }
+}
diff --git a/fabudingyuemoshi/woniu-web.iml b/fabudingyuemoshi/woniu-web.iml
new file mode 100644
index 0000000..431c31e
--- /dev/null
+++ b/fabudingyuemoshi/woniu-web.iml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file