-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
982 additions
and
153 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
251 changes: 158 additions & 93 deletions
251
...-autoconfigure/src/main/java/tk/mybatis/mapper/autoconfigure/MapperAutoConfiguration.java
Large diffs are not rendered by default.
Oops, something went wrong.
24 changes: 24 additions & 0 deletions
24
.../java/tk/mybatis/mapper/autoconfigure/MybatisDependsOnDatabaseInitializationDetector.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package tk.mybatis.mapper.autoconfigure; | ||
|
||
import java.util.Collections; | ||
import java.util.Set; | ||
|
||
import org.mybatis.spring.SqlSessionTemplate; | ||
import org.springframework.boot.sql.init.dependency.AbstractBeansOfTypeDependsOnDatabaseInitializationDetector; | ||
import org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector; | ||
|
||
/** | ||
* {@link DependsOnDatabaseInitializationDetector} for Mybatis. | ||
* | ||
* @author Eddú Meléndez | ||
* @since 2.3.0 | ||
*/ | ||
class MybatisDependsOnDatabaseInitializationDetector | ||
extends AbstractBeansOfTypeDependsOnDatabaseInitializationDetector { | ||
|
||
@Override | ||
protected Set<Class<?>> getDependsOnDatabaseInitializationBeanTypes() { | ||
return Collections.singleton(SqlSessionTemplate.class); | ||
} | ||
|
||
} |
136 changes: 136 additions & 0 deletions
136
...src/main/java/tk/mybatis/mapper/autoconfigure/MybatisLanguageDriverAutoConfiguration.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
package tk.mybatis.mapper.autoconfigure; | ||
|
||
import org.apache.ibatis.scripting.LanguageDriver; | ||
import org.mybatis.scripting.freemarker.FreeMarkerLanguageDriver; | ||
import org.mybatis.scripting.freemarker.FreeMarkerLanguageDriverConfig; | ||
import org.mybatis.scripting.thymeleaf.ThymeleafLanguageDriver; | ||
import org.mybatis.scripting.thymeleaf.ThymeleafLanguageDriverConfig; | ||
import org.mybatis.scripting.velocity.VelocityLanguageDriver; | ||
import org.mybatis.scripting.velocity.VelocityLanguageDriverConfig; | ||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | ||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; | ||
import org.springframework.boot.context.properties.ConfigurationProperties; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Configuration; | ||
|
||
/** | ||
* {@link EnableAutoConfiguration Auto-Configuration} for MyBatis's scripting language drivers. | ||
* | ||
* @author Kazuki Shimizu | ||
* @since 2.1.0 | ||
*/ | ||
@Configuration(proxyBeanMethods = false) | ||
@ConditionalOnClass(LanguageDriver.class) | ||
public class MybatisLanguageDriverAutoConfiguration { | ||
|
||
private static final String CONFIGURATION_PROPERTY_PREFIX = "mybatis.scripting-language-driver"; | ||
|
||
/** | ||
* Configuration class for mybatis-freemarker 1.1.x or under. | ||
*/ | ||
@Configuration(proxyBeanMethods = false) | ||
@ConditionalOnClass(FreeMarkerLanguageDriver.class) | ||
@ConditionalOnMissingClass("org.mybatis.scripting.freemarker.FreeMarkerLanguageDriverConfig") | ||
public static class LegacyFreeMarkerConfiguration { | ||
@Bean | ||
@ConditionalOnMissingBean | ||
FreeMarkerLanguageDriver freeMarkerLanguageDriver() { | ||
return new FreeMarkerLanguageDriver(); | ||
} | ||
} | ||
|
||
/** | ||
* Configuration class for mybatis-freemarker 1.2.x or above. | ||
*/ | ||
@Configuration(proxyBeanMethods = false) | ||
@ConditionalOnClass({FreeMarkerLanguageDriver.class, FreeMarkerLanguageDriverConfig.class}) | ||
public static class FreeMarkerConfiguration { | ||
@Bean | ||
@ConditionalOnMissingBean | ||
FreeMarkerLanguageDriver freeMarkerLanguageDriver(FreeMarkerLanguageDriverConfig config) { | ||
return new FreeMarkerLanguageDriver(config); | ||
} | ||
|
||
@Bean | ||
@ConditionalOnMissingBean | ||
@ConfigurationProperties(CONFIGURATION_PROPERTY_PREFIX + ".freemarker") | ||
public FreeMarkerLanguageDriverConfig freeMarkerLanguageDriverConfig() { | ||
return FreeMarkerLanguageDriverConfig.newInstance(); | ||
} | ||
} | ||
|
||
/** | ||
* Configuration class for mybatis-velocity 2.0 or under. | ||
*/ | ||
@Configuration(proxyBeanMethods = false) | ||
@ConditionalOnClass(org.mybatis.scripting.velocity.Driver.class) | ||
@ConditionalOnMissingClass("org.mybatis.scripting.velocity.VelocityLanguageDriverConfig") | ||
@SuppressWarnings("deprecation") | ||
public static class LegacyVelocityConfiguration { | ||
@Bean | ||
@ConditionalOnMissingBean | ||
org.mybatis.scripting.velocity.Driver velocityLanguageDriver() { | ||
return new org.mybatis.scripting.velocity.Driver(); | ||
} | ||
} | ||
|
||
/** | ||
* Configuration class for mybatis-velocity 2.1.x or above. | ||
*/ | ||
@Configuration(proxyBeanMethods = false) | ||
@ConditionalOnClass({VelocityLanguageDriver.class, VelocityLanguageDriverConfig.class}) | ||
public static class VelocityConfiguration { | ||
@Bean | ||
@ConditionalOnMissingBean | ||
VelocityLanguageDriver velocityLanguageDriver(VelocityLanguageDriverConfig config) { | ||
return new VelocityLanguageDriver(config); | ||
} | ||
|
||
@Bean | ||
@ConditionalOnMissingBean | ||
@ConfigurationProperties(CONFIGURATION_PROPERTY_PREFIX + ".velocity") | ||
public VelocityLanguageDriverConfig velocityLanguageDriverConfig() { | ||
return VelocityLanguageDriverConfig.newInstance(); | ||
} | ||
} | ||
|
||
@Configuration(proxyBeanMethods = false) | ||
@ConditionalOnClass(ThymeleafLanguageDriver.class) | ||
public static class ThymeleafConfiguration { | ||
@Bean | ||
@ConditionalOnMissingBean | ||
ThymeleafLanguageDriver thymeleafLanguageDriver(ThymeleafLanguageDriverConfig config) { | ||
return new ThymeleafLanguageDriver(config); | ||
} | ||
|
||
@Bean | ||
@ConditionalOnMissingBean | ||
@ConfigurationProperties(CONFIGURATION_PROPERTY_PREFIX + ".thymeleaf") | ||
public ThymeleafLanguageDriverConfig thymeleafLanguageDriverConfig() { | ||
return ThymeleafLanguageDriverConfig.newInstance(); | ||
} | ||
|
||
// This class provides to avoid the https://github.com/spring-projects/spring-boot/issues/21626 as workaround. | ||
@SuppressWarnings("unused") | ||
private static class MetadataThymeleafLanguageDriverConfig extends ThymeleafLanguageDriverConfig { | ||
|
||
@ConfigurationProperties(CONFIGURATION_PROPERTY_PREFIX + ".thymeleaf.dialect") | ||
@Override | ||
public DialectConfig getDialect() { | ||
return super.getDialect(); | ||
} | ||
|
||
@ConfigurationProperties(CONFIGURATION_PROPERTY_PREFIX + ".thymeleaf.template-file") | ||
@Override | ||
public TemplateFileConfig getTemplateFile() { | ||
return super.getTemplateFile(); | ||
} | ||
|
||
} | ||
|
||
} | ||
|
||
} | ||
|
Oops, something went wrong.