ruoyi/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/RuoYiApplication.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/resources/application-prop.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/resources/application-test.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/resources/banner.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi/pom.xml
@@ -35,6 +35,8 @@ <poi.version>3.17</poi.version> <oshi.version>3.9.1</oshi.version> <velocity.version>1.7</velocity.version> <mybatis-plus.version>3.3.0</mybatis-plus.version> <hutool.version>5.0.6</hutool.version> </properties> <dependencies> @@ -50,7 +52,6 @@ <groupId>org.springframework.boot</groupId> </exclusion> </exclusions> --> </dependency> <!-- SpringBoot æµè¯ --> @@ -104,18 +105,24 @@ <scope>runtime</scope> </dependency> <!-- SpringBootéæmybatisæ¡æ¶ --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.spring.boot.starter.version}</version> </dependency> <!-- <!– SpringBootéæmybatisæ¡æ¶ –>--> <!-- <dependency>--> <!-- <groupId>org.mybatis.spring.boot</groupId>--> <!-- <artifactId>mybatis-spring-boot-starter</artifactId>--> <!-- <version>${mybatis.spring.boot.starter.version}</version>--> <!-- </dependency>--> <!-- pagehelper å页æä»¶ --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${pagehelper.spring.boot.starter.version}</version> <exclusions> <exclusion> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </exclusion> </exclusions> </dependency> <!--é¿éæ°æ®åºè¿æ¥æ± --> @@ -238,7 +245,25 @@ <artifactId>velocity</artifactId> <version>${velocity.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>${mybatis-plus.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> ruoyi/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -16,15 +16,6 @@ { // System.setProperty("spring.devtools.restart.enabled", "false"); SpringApplication.run(RuoYiApplication.class, args); System.out.println("(â¥â â¿â )ï¾ï¾ è¥ä¾å¯å¨æå á(´ڡ`á)ï¾ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + " |(_ o _) / _( )_ .' \n" + " | (_,_).' __ ___(_ o _)' \n" + " | |\\ \\ | || |(_,_)' \n" + " | | \\ `' /| `-' / \n" + " | | \\ / \\ / \n" + " ''-' `'-' `-..-' "); System.out.println("(â¥â â¿â )ï¾ï¾ è¥ä¾å¯å¨æå á(´ڡ`á)ï¾"); } } ruoyi/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java
@@ -1,105 +1,105 @@ package com.ruoyi.framework.config; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import javax.sql.DataSource; import org.apache.ibatis.io.VFS; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.type.classreading.CachingMetadataReaderFactory; import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReaderFactory; import org.springframework.util.ClassUtils; /** * Mybatisæ¯æ*å¹é æ«æå * * @author ruoyi */ @Configuration public class MyBatisConfig { @Autowired private Environment env; static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; public static String setTypeAliasesPackage(String typeAliasesPackage) { ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); List<String> allResult = new ArrayList<String>(); try { for (String aliasesPackage : typeAliasesPackage.split(",")) { List<String> result = new ArrayList<String>(); aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; Resource[] resources = resolver.getResources(aliasesPackage); if (resources != null && resources.length > 0) { MetadataReader metadataReader = null; for (Resource resource : resources) { if (resource.isReadable()) { metadataReader = metadataReaderFactory.getMetadataReader(resource); try { result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } } if (result.size() > 0) { HashSet<String> hashResult = new HashSet<String>(result); allResult.addAll(hashResult); } } if (allResult.size() > 0) { typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); } else { throw new RuntimeException("mybatis typeAliasesPackage è·¯å¾æ«æé误,åæ°typeAliasesPackage:" + typeAliasesPackage + "æªæ¾å°ä»»ä½å "); } } catch (IOException e) { e.printStackTrace(); } return typeAliasesPackage; } @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); String mapperLocations = env.getProperty("mybatis.mapperLocations"); typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); VFS.addImplClass(SpringBootVFS.class); final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); sessionFactory.setTypeAliasesPackage(typeAliasesPackage); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations)); return sessionFactory.getObject(); } } //package com.ruoyi.framework.config; // //import java.io.IOException; //import java.util.ArrayList; //import java.util.HashSet; //import java.util.List; //import javax.sql.DataSource; //import org.apache.ibatis.io.VFS; //import org.apache.ibatis.session.SqlSessionFactory; //import org.mybatis.spring.SqlSessionFactoryBean; //import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; //import org.springframework.core.env.Environment; //import org.springframework.core.io.Resource; //import org.springframework.core.io.support.PathMatchingResourcePatternResolver; //import org.springframework.core.io.support.ResourcePatternResolver; //import org.springframework.core.type.classreading.CachingMetadataReaderFactory; //import org.springframework.core.type.classreading.MetadataReader; //import org.springframework.core.type.classreading.MetadataReaderFactory; //import org.springframework.util.ClassUtils; // ///** // * Mybatisæ¯æ*å¹é æ«æå // * // * @author ruoyi // */ //@Configuration //public class MyBatisConfig //{ // @Autowired // private Environment env; // // static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; // // public static String setTypeAliasesPackage(String typeAliasesPackage) // { // ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); // MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); // List<String> allResult = new ArrayList<String>(); // try // { // for (String aliasesPackage : typeAliasesPackage.split(",")) // { // List<String> result = new ArrayList<String>(); // aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX // + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; // Resource[] resources = resolver.getResources(aliasesPackage); // if (resources != null && resources.length > 0) // { // MetadataReader metadataReader = null; // for (Resource resource : resources) // { // if (resource.isReadable()) // { // metadataReader = metadataReaderFactory.getMetadataReader(resource); // try // { // result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); // } // catch (ClassNotFoundException e) // { // e.printStackTrace(); // } // } // } // } // if (result.size() > 0) // { // HashSet<String> hashResult = new HashSet<String>(result); // allResult.addAll(hashResult); // } // } // if (allResult.size() > 0) // { // typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); // } // else // { // throw new RuntimeException("mybatis typeAliasesPackage è·¯å¾æ«æé误,åæ°typeAliasesPackage:" + typeAliasesPackage + "æªæ¾å°ä»»ä½å "); // } // } // catch (IOException e) // { // e.printStackTrace(); // } // return typeAliasesPackage; // } // // @Bean // public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception // { // String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); // String mapperLocations = env.getProperty("mybatis.mapperLocations"); // typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); // VFS.addImplClass(SpringBootVFS.class); // // final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); // sessionFactory.setDataSource(dataSource); // sessionFactory.setTypeAliasesPackage(typeAliasesPackage); // sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations)); // return sessionFactory.getObject(); // } //} ruoyi/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ package com.ruoyi.framework.config; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableTransactionManagement(proxyTargetClass = true) @Configuration public class MybatisPlusConfig { /** * å页æä»¶ï¼èªå¨è¯å«æ°æ®åºç±»å */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } /** * ä¹è§éæä»¶ */ @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } /** * 妿æ¯å¯¹å ¨è¡¨çå é¤ææ´æ°æä½ï¼å°±ä¼ç»æ¢è¯¥æä½ */ @Bean public SqlExplainInterceptor sqlExplainInterceptor() { return new SqlExplainInterceptor(); } } ruoyi/src/main/resources/application-dev.ymlcopy from ruoyi/src/main/resources/application-druid.yml copy to ruoyi/src/main/resources/application-dev.yml
Îļþ´Ó ruoyi/src/main/resources/application-druid.yml ¸´ÖÆ @@ -6,9 +6,9 @@ druid: # ä¸»åºæ°æ®æº master: url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://192.168.0.222:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: password password: root # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é @@ -55,3 +55,23 @@ wall: config: multi-statement-allow: true # redis é ç½® redis: # å°å host: 192.168.0.222 # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # å¯ç password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms ruoyi/src/main/resources/application-prop.yml
ÎļþÃû´Ó ruoyi/src/main/resources/application-druid.yml ÐÞ¸Ä @@ -55,3 +55,23 @@ wall: config: multi-statement-allow: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # å¯ç password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms ruoyi/src/main/resources/application-test.ymlcopy from ruoyi/src/main/resources/application-druid.yml copy to ruoyi/src/main/resources/application-test.yml
Îļþ´Ó ruoyi/src/main/resources/application-druid.yml ¸´ÖÆ @@ -55,3 +55,23 @@ wall: config: multi-statement-allow: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # å¯ç password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms ruoyi/src/main/resources/application.yml
@@ -42,7 +42,7 @@ # å½é åèµæºæä»¶è·¯å¾ basename: i18n/messages profiles: active: druid active: dev # æä»¶ä¸ä¼ servlet: multipart: @@ -55,26 +55,6 @@ restart: # çé¨ç½²å¼å ³ enabled: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # å¯ç password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # tokené ç½® token: @@ -85,14 +65,47 @@ # ä»¤çæææï¼é»è®¤30åéï¼ expireTime: 30 ## MyBatisé ç½® #mybatis: # # æç´¢æå®å å«å # typeAliasesPackage: com.ruoyi.project.**.domain # # é ç½®mapperçæ«æï¼æ¾å°ææçmapper.xmlæ å°æä»¶ # mapperLocations: classpath*:mybatis/**/*Mapper.xml # # å è½½å ¨å±çé ç½®æä»¶ # configLocation: classpath:mybatis/mybatis-config.xml # MyBatisé ç½® mybatis: # æç´¢æå®å å«å typeAliasesPackage: com.ruoyi.project.**.domain # é ç½®mapperçæ«æï¼æ¾å°ææçmapper.xmlæ å°æä»¶ mapperLocations: classpath*:mybatis/**/*Mapper.xml # å è½½å ¨å±çé ç½®æä»¶ configLocation: classpath:mybatis/mybatis-config.xml mybatis-plus: mapper-locations: classpath*:mybatis/**/*Mapper.xml #å®ä½æ«æï¼å¤ä¸ªpackageç¨éå·æè åå·åé typeAliasesPackage: com.ruoyi.project configuration: map-underscore-to-camel-case: true cache-enabled: true global-config: banner: false #å·æ°mapper è°è¯ç¥å¨ refresh: true db-config: #主é®ç±»å 0:"æ°æ®åºIDèªå¢", 1:"ç¨æ·è¾å ¥ID",2:"å ¨å±å¯ä¸ID (æ°åç±»åå¯ä¸ID)", 3:"å ¨å±å¯ä¸ID UUID"; id-type: auto #åæ®µçç¥ 0:"忽ç¥å¤æ",1:"é NULL 夿"),2:"éç©ºå¤æ" field-strategy: not_empty #驼峰ä¸åçº¿è½¬æ¢ db-column-underline: true #æ°æ®åºå¤§åä¸åçº¿è½¬æ¢ #capital-mode: true #åºåæ¥å£å®ç°ç±»é ç½® #key-generator: com.baomidou.springboot.xxx #é»è¾å é¤é ç½® logic-delete-value: 1 logic-not-delete-value: 0 #æ°æ®åºç±»å db-type: mysql #èªå®ä¹SQLæ³¨å ¥å¨ #sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector #èªå®ä¹å¡«å çç¥æ¥å£å®ç° #meta-object-handler: com.baomidou.springboot.xxx # PageHelperå页æä»¶ pagehelper: ruoyi/src/main/resources/banner.txt
@@ -1,24 +1,2 @@ Application Version: ${ruoyi.version} Spring Boot Version: ${spring-boot.version} //////////////////////////////////////////////////////////////////// // _ooOoo_ // // o8888888o // // 88" . "88 // // (| ^_^ |) // // O\ = /O // // ____/`---'\____ // // .' \\| |// `. // // / \\||| : |||// \ // // / _||||| -:- |||||- \ // // | | \\\ - /// | | // // | \_| ''\---/'' | | // // \ .-\__ `-` ___/-. / // // ___`. .' /--.--\ `. . ___ // // ."" '< `.___\_<|>_/___.' >'"". // // | | : `- \`.;`\ _ /`;.`/ - ` : | | // // \ \ `-. \_ __\ /__ _/ .-` / / // // ========`-.____`-.___\_____/___.-`____.-'======== // // `=---=' // // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // // ä½ç¥ä¿ä½ æ°¸ä¸å®æº æ°¸æ BUG // ////////////////////////////////////////////////////////////////////