Skip to content

Commit 664776f

Browse files
committed
Java:Kafka Demo 升级 JDK 17,APIJSON 7.1.0, apijson-framework 及自身 7.1.5
1 parent 8a1d532 commit 664776f

12 files changed

+51
-42
lines changed

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/pom.xml

+12-6
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@
99
</parent>
1010
<groupId>apijson.demo</groupId>
1111
<artifactId>apijsondemo-multidatasource-kafka</artifactId>
12-
<version>7.0.3</version>
12+
<version>7.1.5</version>
1313

1414
<name>apijsondemo-multidatasource-kafka</name>
1515
<description>Demo project for testing APIJSON server based on SpringBoot</description>
1616

1717
<properties>
1818
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1919
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
20+
<java.version>17</java.version>
21+
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
22+
<maven.compiler.source>17</maven.compiler.source>
23+
<maven.compiler.target>17</maven.compiler.target>
2024
<commons-lang3.version>3.12.0</commons-lang3.version>
2125
<druid.version>1.1.16</druid.version>
2226
<mybatisplus.version>3.5.1</mybatisplus.version>
@@ -37,7 +41,6 @@
3741
<spring-context-support.version>5.3.18</spring-context-support.version>
3842
<spring-boot-configuration-processor.version>2.6.6</spring-boot-configuration-processor.version>
3943
<dynamic-datasource-spring-boot-starter.version>3.5.2</dynamic-datasource-spring-boot-starter.version>
40-
<java.version>1.8</java.version>
4144
<kafka.version>3.2.1</kafka.version>
4245
</properties>
4346

@@ -46,12 +49,12 @@
4649
<dependency>
4750
<groupId>com.github.Tencent</groupId>
4851
<artifactId>APIJSON</artifactId>
49-
<version>7.0.3</version>
52+
<version>7.1.0</version>
5053
</dependency>
5154
<dependency>
5255
<groupId>com.github.APIJSON</groupId>
5356
<artifactId>apijson-framework</artifactId>
54-
<version>7.0.3</version>
57+
<version>7.1.5</version>
5558
</dependency>
5659

5760
<!-- 需要用的数据库 JDBC 驱动 -->
@@ -62,6 +65,7 @@
6265
<dependency>
6366
<groupId>org.springframework.boot</groupId>
6467
<artifactId>spring-boot-starter-web</artifactId>
68+
<version>2.5.13</version>
6569
</dependency>
6670
<dependency>
6771
<groupId>org.springframework</groupId>
@@ -147,6 +151,7 @@
147151
<plugin>
148152
<groupId>org.springframework.boot</groupId>
149153
<artifactId>spring-boot-maven-plugin</artifactId>
154+
<version>2.5.13</version>
150155
<configuration>
151156
<fork>true</fork>
152157
<mainClass>apijson.demo.DemoApplication</mainClass>
@@ -162,9 +167,10 @@
162167
<plugin>
163168
<groupId>org.apache.maven.plugins</groupId>
164169
<artifactId>maven-compiler-plugin</artifactId>
170+
<version>3.8.1</version>
165171
<configuration>
166-
<source>1.8</source>
167-
<target>1.8</target>
172+
<source>17</source>
173+
<target>17</target>
168174
</configuration>
169175
</plugin>
170176
</plugins>

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DataBaseUtil.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class DataBaseUtil {
1313
* @param url
1414
* @return
1515
*/
16-
public static String getLibname(String url) {
16+
public static String getDbName(String url) {
1717
Pattern p = Pattern.compile("jdbc:(?<db>\\w+):.*((//)|@)(?<host>.+):(?<port>\\d+)(/|(;DatabaseName=)|:)(?<dbName>\\w+)\\??.*");
1818
Matcher m = p.matcher(url);
1919
if(m.find()) {
@@ -41,7 +41,7 @@ public static String getDruidUrl(String datasource) {
4141
}
4242

4343
public static String getDruidSchema(String datasource) {
44-
return getLibname(DynamicDataSource.getDetail(datasource).getUrl()); // 数据库名;
44+
return getDbName(DynamicDataSource.getDetail(datasource).getUrl()); // 数据库名;
4545
}
4646

4747
public static String getDruidDBAccount(String datasource) {

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoApplication.java

+10-7
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
2727

2828
import apijson.Log;
29-
import apijson.framework.APIJSONApplication;
30-
import apijson.framework.APIJSONCreator;
29+
import apijson.framework.javax.APIJSONApplication;
30+
import apijson.framework.javax.APIJSONCreator;
3131
import apijson.orm.AbstractFunctionParser;
3232
import apijson.orm.AbstractVerifier;
3333
import apijson.orm.FunctionParser;
@@ -62,11 +62,14 @@ public void customize(ConfigurableServletWebServerFactory server) {
6262

6363
// 支持 APIAuto 中 JavaScript 代码跨域请求
6464
@Bean
65-
public WebMvcConfigurer corsConfigurer() {
65+
public WebMvcConfigurer corsConfig() {
6666
return new WebMvcConfigurer() {
6767
@Override
6868
public void addCorsMappings(CorsRegistry registry) {
69-
registry.addMapping("/**").allowedOriginPatterns("*").allowedMethods("*").allowCredentials(true)
69+
registry.addMapping("/**")
70+
.allowedOriginPatterns("*")
71+
.allowedMethods("*")
72+
.allowCredentials(true)
7073
.maxAge(3600);
7174
}
7275
};
@@ -81,17 +84,17 @@ public Parser<String> createParser() {
8184
}
8285

8386
@Override
84-
public SQLConfig createSQLConfig() {
87+
public SQLConfig<String> createSQLConfig() {
8588
return new DemoSQLConfig();
8689
}
8790

8891
@Override
89-
public FunctionParser createFunctionParser() {
92+
public FunctionParser<String> createFunctionParser() {
9093
return new DemoFunctionParser();
9194
}
9295

9396
@Override
94-
public SQLExecutor createSQLExecutor() {
97+
public SQLExecutor<String> createSQLExecutor() {
9598
return new DemoSQLExecutor();
9699
}
97100
};

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoController.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
import apijson.RequestMethod;
3131
import apijson.StringUtil;
32-
import apijson.framework.APIJSONController;
32+
import apijson.framework.javax.APIJSONController;
3333
import apijson.orm.Parser;
3434

3535

@@ -46,10 +46,10 @@
4646
*/
4747
@RestController
4848
@RequestMapping("")
49-
public class DemoController extends APIJSONController<Long> {
49+
public class DemoController extends APIJSONController<String> {
5050

5151
@Override
52-
public Parser<Long> newParser(HttpSession session, RequestMethod method) {
52+
public Parser<String> newParser(HttpSession session, RequestMethod method) {
5353
return super.newParser(session, method).setNeedVerify(false); // TODO 这里关闭校验,方便新手快速测试,实际线上项目建议开启
5454
}
5555

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoFunctionParser.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
import apijson.NotNull;
88
import apijson.RequestMethod;
99
import apijson.StringUtil;
10-
import apijson.framework.APIJSONFunctionParser;
11-
import apijson.framework.APIJSONVerifier;
10+
import apijson.framework.javax.APIJSONFunctionParser;
11+
import apijson.framework.javax.APIJSONVerifier;
1212
import lombok.extern.slf4j.Slf4j;
1313

1414
@Slf4j
15-
public class DemoFunctionParser extends APIJSONFunctionParser {
15+
public class DemoFunctionParser extends APIJSONFunctionParser<String> {
1616
public DemoFunctionParser() {
1717
this(null, null, 0, null, null);
1818
}

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoObjectParser.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
import apijson.NotNull;
1010
import apijson.RequestMethod;
11-
import apijson.framework.APIJSONObjectParser;
11+
import apijson.framework.javax.APIJSONObjectParser;
1212
import apijson.orm.Join;
1313
import apijson.orm.SQLConfig;
1414

15-
public class DemoObjectParser extends APIJSONObjectParser {
15+
public class DemoObjectParser extends APIJSONObjectParser<String> {
1616

1717
public DemoObjectParser(HttpSession session, @NotNull JSONObject request, String parentPath, SQLConfig arrayConfig
1818
, boolean isSubquery, boolean isTable, boolean isArrayMainTable) throws Exception {

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoParser.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import com.alibaba.fastjson.JSONObject;
44

55
import apijson.RequestMethod;
6-
import apijson.framework.APIJSONObjectParser;
7-
import apijson.framework.APIJSONParser;
6+
import apijson.framework.javax.APIJSONObjectParser;
7+
import apijson.framework.javax.APIJSONParser;
88
import apijson.orm.SQLConfig;
99

1010
public class DemoParser extends APIJSONParser<String> {
@@ -27,7 +27,7 @@ public DemoParser(RequestMethod method, boolean needVerify) {
2727
// }
2828

2929
@Override
30-
public APIJSONObjectParser createObjectParser(JSONObject request, String parentPath, SQLConfig arrayConfig, boolean isSubquery, boolean isTable, boolean isArrayMainTable) throws Exception {
30+
public APIJSONObjectParser<String> createObjectParser(JSONObject request, String parentPath, SQLConfig arrayConfig, boolean isSubquery, boolean isTable, boolean isArrayMainTable) throws Exception {
3131
return new DemoObjectParser(getSession(), request, parentPath, arrayConfig, isSubquery, isTable, isArrayMainTable).setMethod(getMethod()).setParser(this);
3232
}
3333

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLConfig.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.alibaba.fastjson.annotation.JSONField;
2020

2121
import apijson.RequestMethod;
22-
import apijson.framework.APIJSONSQLConfig;
22+
import apijson.framework.javax.APIJSONSQLConfig;
2323
import apijson.orm.AbstractSQLConfig;
2424

2525

@@ -29,7 +29,7 @@
2929
* https://github.com/Tencent/APIJSON/blob/master/%E8%AF%A6%E7%BB%86%E7%9A%84%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md#c-1-1%E4%BF%AE%E6%94%B9%E6%95%B0%E6%8D%AE%E5%BA%93%E9%93%BE%E6%8E%A5
3030
* @author Lemon
3131
*/
32-
public class DemoSQLConfig extends APIJSONSQLConfig<Long> {
32+
public class DemoSQLConfig extends APIJSONSQLConfig<String> {
3333

3434
public DemoSQLConfig() {
3535
super();

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLExecutor.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import apijson.Log;
2323
import apijson.NotNull;
2424
import apijson.StringUtil;
25-
import apijson.framework.APIJSONSQLExecutor;
25+
import apijson.framework.javax.APIJSONSQLExecutor;
2626
import apijson.orm.SQLConfig;
2727
import lombok.extern.log4j.Log4j2;
2828

@@ -32,7 +32,7 @@
3232
* @author Lemon
3333
*/
3434
@Log4j2
35-
public class DemoSQLExecutor extends APIJSONSQLExecutor<Long> {
35+
public class DemoSQLExecutor extends APIJSONSQLExecutor<String> {
3636
public static final String TAG = "DemoSQLExecutor";
3737

3838
// 适配连接池,如果这里能拿到连接池的有效 Connection,则 SQLConfig 不需要配置 dbVersion, dbUri, dbAccount,

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DynamicDataSource.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private void initJdbcDataSource() {
8585
ItemDataSource dataSource = (ItemDataSource) dataSourceList.getDataSources().get(datasourceName);
8686
DruidDataSource druid = (DruidDataSource) dataSource.getRealDataSource();
8787
String url = druid.getDataSourceStat().getUrl(); // 数据库连接url
88-
String schema = DataBaseUtil.getLibname(url); // 数据库名;
88+
String schema = DataBaseUtil.getDbName(url); // 数据库名;
8989
String database = JdbcUtils.getDbType(url).getDb().toUpperCase(); // 数据库类型
9090
String dbAccount = druid.getUsername(); // 数据库用户名
9191
String dbPassword = druid.getPassword(); // 数据库密码
@@ -111,9 +111,9 @@ public void initMQ_kafka() {
111111
/* 1.创建kafka生产者的配置信息 */
112112
Properties props = new Properties();
113113
/*2.指定连接的kafka集群, broker-list */
114-
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "xxx:9092");
114+
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "http://localhost:9092"); // TODO 改成你自己的
115115
/*3.ack应答级别*/
116-
props.put(ProducerConfig.ACKS_CONFIG, "all");
116+
props.put(ProducerConfig.ACKS_CONFIG, "all"); // TODO 改成你自己的
117117
/*4.重试次数*/
118118
props.put(ProducerConfig.RETRIES_CONFIG, 3);
119119
/*5.批次大小,一次发送多少数据,当数据大于16k,生产者会发送数据到 kafka集群 */
@@ -128,11 +128,11 @@ public void initMQ_kafka() {
128128

129129

130130
DynamicDataSource dynDataSource = new DynamicDataSource();
131-
dynDataSource.setDatasourceName("kafka");
132-
dynDataSource.setDatabase("MQ");
131+
dynDataSource.setDatasourceName("kafka"); // TODO 改成你自己的
132+
dynDataSource.setDatabase("MQ"); // TODO 改成你自己的
133133
dynDataSource.setSchema(""); // 不需要配置数据库名
134-
dynDataSource.setDbVersion("2.8.1"); // 后面做成动态的
135-
dynDataSource.setClusterName("kafka");
134+
dynDataSource.setDbVersion("2.8.1"); // TODO 改成你自己的 后面做成动态的
135+
dynDataSource.setClusterName("kafka"); // TODO 改成你自己的
136136
dynDataSource.setProps(props);
137137
dataSourceMap.put(dynDataSource.getDatasourceName(), dynDataSource);
138138
}

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/KafkaSimpleProducer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
@Slf4j
1313
public class KafkaSimpleProducer {
1414

15-
public static int sendMessage(String datasource, Properties props,String topic, Object message) {
15+
public static int sendMessage(String datasource, Properties props, String topic, Object message) {
1616
KafkaProducer<String, Object> producer = null;
1717
try {
1818
/* 9.创建生产者对象 */
@@ -25,7 +25,7 @@ public static int sendMessage(String datasource, Properties props,String topic,
2525
e.printStackTrace();
2626
throw new IllegalArgumentException("动态数据源配置错误 " + datasource);
2727
} finally {
28-
if(producer != null) {
28+
if (producer != null) {
2929
/* 关闭资源 */
3030
producer.close();
3131
}

Diff for: APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/resources/application.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ spring:
2222
datasource:
2323
master:
2424
driver-class-name: com.mysql.cj.jdbc.Driver
25-
url: jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
26-
username:
27-
password:
25+
url: jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
26+
username: root
27+
password: apijson
2828
filter:
2929
stat:
3030
log-slow-sql: true

0 commit comments

Comments
 (0)