Skip to content

Commit f014675

Browse files
author
Weasley
committed
Solve the problem that the following starters fail to autowire when DTT is integrated with the following starters in JDK 17 and spring-boot-starter-parent:3.0.0-M3 environment:
mybatis-plus-boot-starter:3.5.2 mybatis-spring-boot-starter:2.2.2 mapper-spring-boot-starter:4.2.1
1 parent 25a692e commit f014675

File tree

10 files changed

+26
-107
lines changed

10 files changed

+26
-107
lines changed

mydtt-plus-spring-boot-demo/mydtt-plus-spring-boot-2-x/pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>2.7.1</version>
8+
<!--<version>2.7.1</version>-->
9+
<version>2.3.12.RELEASE</version>
910
<relativePath/>
1011
</parent>
1112

@@ -24,7 +25,7 @@
2425
<dependency>
2526
<groupId>io.github.weasley-j</groupId>
2627
<artifactId>mydtt-plus-spring-boot-starter</artifactId>
27-
<version>1.0.7</version>
28+
<version>1.0.8</version>
2829
</dependency>
2930
<!-- javadoc-scribe start -->
3031
<dependency>

mydtt-plus-spring-boot-demo/mydtt-plus-spring-boot-2-x/src/main/resources/application-mybatis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
logging:
22
level:
3-
org.springframework.jdbc.core.JdbcTemplate: info
3+
org.springframework.jdbc.core.JdbcTemplate: debug
44
jdbc.sqltiming: debug
55

66
spring:
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
SETTINGS="/Users/weasley/Development/program/apache-maven/conf/settings-sonatype.xml"
4+
MODULE="mydtt-plus-spring-boot-3-x"
5+
6+
clear &&
7+
mvn clean package -pl :$MODULE -am --settings $SETTINGS

mydtt-plus-spring-boot-demo/mydtt-plus-spring-boot-3-x/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<dependency>
4747
<groupId>io.github.weasley-j</groupId>
4848
<artifactId>mydtt-plus-spring-boot-starter</artifactId>
49-
<version>1.0.7</version>
49+
<version>1.0.8</version>
5050
</dependency>
5151
<!-- javadoc-scribe start -->
5252
<dependency>

mydtt-plus-spring-boot-starter/pom.xml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<groupId>io.github.weasley-j</groupId>
1313
<artifactId>mydtt-plus-spring-boot-starter</artifactId>
14-
<version>1.0.7</version>
14+
<version>1.0.8</version>
1515
<name>mydtt-plus-spring-boot-starter</name>
1616
<description>MyDtt-Plus is a starter of SpringBoot,I named it DTT,It's an object-oriented Java framework,
1717
The design concept of DTT is "Domain Driven Table", Makes you more focused on your Java domain.
@@ -54,7 +54,6 @@
5454
<hutool.version>5.8.4</hutool.version>
5555
<mybatis-plus.version>3.5.2</mybatis-plus.version>
5656
<therapi-runtime-javadoc.version>0.13.0</therapi-runtime-javadoc.version>
57-
<spring-cloud-context.version>3.1.3</spring-cloud-context.version>
5857
<velocity-engine-core.version>2.3</velocity-engine-core.version>
5958
<mybatis-spring.version>2.0.7</mybatis-spring.version>
6059
<mybatis.version>3.5.10</mybatis.version>
@@ -136,11 +135,6 @@
136135
<artifactId>jackson-datatype-jsr310</artifactId>
137136
</dependency>
138137
<!-- end jackson -->
139-
<dependency>
140-
<groupId>org.springframework.cloud</groupId>
141-
<artifactId>spring-cloud-context</artifactId>
142-
<version>${spring-cloud-context.version}</version>
143-
</dependency>
144138
<!-- jdbc -->
145139
<dependency>
146140
<groupId>org.springframework.boot</groupId>

mydtt-plus-spring-boot-starter/src/main/java/cn/alphahub/dtt/plus/config/DttDataSourceAutoConfigurer.java

Lines changed: 0 additions & 73 deletions
This file was deleted.

mydtt-plus-spring-boot-starter/src/main/java/cn/alphahub/dtt/plus/config/support/MybatisDataSourceConfigurer.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.alphahub.dtt.plus.config.support;
22

33
import cn.alphahub.dtt.plus.framework.annotations.EnableDtt;
4+
import cn.alphahub.dtt.plus.util.SysUtil;
45
import com.baomidou.mybatisplus.core.MybatisConfiguration;
56
import com.baomidou.mybatisplus.core.config.GlobalConfig;
67
import com.baomidou.mybatisplus.core.toolkit.Constants;
@@ -20,16 +21,13 @@
2021
import org.springframework.beans.factory.annotation.Qualifier;
2122
import org.springframework.boot.SpringApplication;
2223
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
23-
import org.springframework.boot.autoconfigure.condition.ConditionalOnJava;
2424
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
2626
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
2727
import org.springframework.boot.context.properties.ConfigurationProperties;
2828
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
2929
import org.springframework.boot.context.properties.EnableConfigurationProperties;
3030
import org.springframework.boot.context.properties.NestedConfigurationProperty;
31-
import org.springframework.boot.jdbc.DataSourceBuilder;
32-
import org.springframework.boot.system.JavaVersion;
3331
import org.springframework.context.annotation.Bean;
3432
import org.springframework.context.annotation.Condition;
3533
import org.springframework.context.annotation.ConditionContext;
@@ -67,7 +65,6 @@
6765
@ConditionalOnBean(annotation = {EnableDtt.class})
6866
@ConfigurationPropertiesScan({"cn.alphahub.dtt.plus.config"})
6967
@ConditionalOnMissingBean({SqlSessionFactory.class, SqlSessionTemplate.class})
70-
@ConditionalOnJava(value = JavaVersion.SEVENTEEN, range = ConditionalOnJava.Range.EQUAL_OR_NEWER)
7168
@EnableConfigurationProperties({DataSourceProperties.class, MybatisProperties.class, MybatisPlusProperties.class})
7269
public class MybatisDataSourceConfigurer {
7370

@@ -84,7 +81,7 @@ public DataSource dataSource(DataSourceProperties properties) {
8481
if (StringUtils.hasText(properties.getName())) {
8582
dataSource.setPoolName(properties.getName());
8683
}
87-
return DataSourceBuilder.derivedFrom(dataSource).build();
84+
return dataSource;
8885
}
8986

9087
@Bean
@@ -123,7 +120,8 @@ public static class MybatisSupportCondition implements Condition {
123120
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
124121
String springVersionPrefix = SpringApplication.class.getPackage().getImplementationVersion().split("\\.")[0];
125122
if (StringUtils.hasText(springVersionPrefix)) {
126-
return Integer.parseInt(springVersionPrefix) >= 3;
123+
int javaVersion = SysUtil.getJavaInfo().getVersionInt();
124+
return Integer.parseInt(springVersionPrefix) >= 3 && javaVersion >= 1700;
127125
}
128126
return false;
129127
}

mydtt-plus-spring-boot-starter/src/main/java/cn/alphahub/dtt/plus/framework/InitDttClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ public Map<DatabaseType, DttTableHandler<ModelEntity>> tableHandlerClient() {
9494
*/
9595
@Bean
9696
@SuppressWarnings({"all"})
97-
@DependsOn({"commentParserClient", "commentParserClient", "defaultHikariDataSource"})
97+
@DependsOn({"commentParserClient", "commentParserClient"})
9898
public ContextWrapper contextWrapper(@Qualifier("commentParserClient") Map<ParserType, DttCommentParser<ModelEntity>> commentParserClient,
9999
@Qualifier("tableHandlerClient") Map<DatabaseType, DttTableHandler<ModelEntity>> tableHandlerClient,
100-
@Qualifier("defaultHikariDataSource") DataSource dataSource) throws SQLException {
100+
DataSource dataSource) throws SQLException {
101101
String databaseName = "";
102102
DatabaseMetaData metaData = dataSource.getConnection().getMetaData();
103103
ResultSet result = metaData.getCatalogs();

mydtt-plus-spring-boot-starter/src/main/java/cn/alphahub/dtt/plus/framework/annotations/EnableDtt.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import cn.alphahub.dtt.plus.config.DefaultExtraPropertiesLoader;
44
import cn.alphahub.dtt.plus.config.DefaultExtraYamlSourceLoader;
5-
import cn.alphahub.dtt.plus.config.DttDataSourceAutoConfigurer;
65
import cn.alphahub.dtt.plus.config.support.MybatisDataSourceConfigurer;
76
import cn.alphahub.dtt.plus.enums.ParserType;
87
import cn.alphahub.dtt.plus.framework.ClassScanningProvider;
@@ -36,12 +35,11 @@
3635
@Documented
3736
@Target(ElementType.TYPE)
3837
@Retention(RetentionPolicy.RUNTIME)
39-
@Import({
40-
DttDataSourceAutoConfigurer.class, InitDttHandler.class, DefaultAnnotationParser.class,
38+
@Import({InitDttHandler.class, InitDttClient.class, DefaultAnnotationParser.class,
4139
DefaultJavaDocParser.class, DefaultDb2TableHandler.class, DefaultMariadbTableHandler.class,
4240
DefaultMysqlTableHandler.class, DefaultOracleTableHandler.class, DefaultPostgresqlTableHandler.class,
4341
DefaultSqlserverTableHandler.class, VelocityHandler.class, DttTableRunner.class,
44-
DefaultExtraPropertiesLoader.class, DefaultExtraYamlSourceLoader.class, InitDttClient.class,
42+
DefaultExtraPropertiesLoader.class, DefaultExtraYamlSourceLoader.class,
4543
ClassScanningProvider.class, MybatisDataSourceConfigurer.class,
4644
})
4745
public @interface EnableDtt {

mydtt-plus-spring-boot-starter/src/main/java/cn/alphahub/dtt/plus/framework/core/DttTableRunner.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import org.slf4j.Logger;
66
import org.slf4j.LoggerFactory;
77
import org.springframework.beans.factory.annotation.Autowired;
8-
import org.springframework.beans.factory.annotation.Qualifier;
98
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
109
import org.springframework.jdbc.core.JdbcTemplate;
1110
import org.springframework.stereotype.Component;
@@ -27,8 +26,7 @@ public class DttTableRunner {
2726
private static final Logger logger = LoggerFactory.getLogger(DttTableRunner.class);
2827

2928
@Autowired
30-
@Qualifier("defaultJdbcTemplate")
31-
private JdbcTemplate defaultJdbcTemplate;
29+
private JdbcTemplate jdbcTemplate;
3230

3331
/**
3432
* run create DDL statement
@@ -37,12 +35,10 @@ public class DttTableRunner {
3735
*/
3836
@Transactional(rollbackFor = {Exception.class}, transactionManager = "defaultDataSourceTransactionManager", propagation = Propagation.REQUIRES_NEW)
3937
public void execute(StringWriter writer) {
40-
final Logger jdbcLogger = LoggerFactory.getLogger(JdbcTemplate.class);
41-
boolean debugEnabled = jdbcLogger.isDebugEnabled();
42-
if (logger.isDebugEnabled() && !debugEnabled) {
38+
if (logger.isDebugEnabled()) {
4339
logger.debug("数据库建表语句:{}{}", SysUtil.getLineSeparator(), writer);
4440
}
45-
defaultJdbcTemplate.execute(writer.toString());
41+
jdbcTemplate.execute(writer.toString());
4642
}
4743

4844
/**
@@ -52,11 +48,9 @@ public void execute(StringWriter writer) {
5248
*/
5349
@Transactional(rollbackFor = {Exception.class}, transactionManager = "defaultDataSourceTransactionManager", propagation = Propagation.REQUIRES_NEW)
5450
public void execute(String table) {
55-
final Logger jdbcLogger = LoggerFactory.getLogger(JdbcTemplate.class);
56-
boolean debugEnabled = jdbcLogger.isDebugEnabled();
57-
if (logger.isDebugEnabled() && !debugEnabled) {
51+
if (logger.isDebugEnabled()) {
5852
logger.debug("数据库建表语句:{}{}", SysUtil.getLineSeparator(), table);
5953
}
60-
defaultJdbcTemplate.execute(table);
54+
jdbcTemplate.execute(table);
6155
}
6256
}

0 commit comments

Comments
 (0)