Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
modeng-service
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
邢保振
modeng-service
Commits
97190e77
Commit
97190e77
authored
Dec 13, 2023
by
zhaoqingwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
阿拉丁-魔登
parent
737b8fd8
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
134 additions
and
133 deletions
+134
-133
ApplicationConfig.java
...in/java/com/ruoyi/framework/config/ApplicationConfig.java
+1
-0
MyBatisConfig.java
src/main/java/com/ruoyi/framework/config/MyBatisConfig.java
+133
-133
No files found.
src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
View file @
97190e77
...
...
@@ -17,6 +17,7 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
@EnableAspectJAutoProxy
(
exposeProxy
=
true
)
// 指定要扫描的Mapper类的包的路径
@MapperScan
(
"com.ruoyi.project.**.mapper"
)
@MapperScan
(
value
=
{
"com.ruoyi.project.**.mapper"
,
"com.ruoyi.adsdesk.mapper"
})
public
class
ApplicationConfig
{
/**
...
...
src/main/java/com/ruoyi/framework/config/MyBatisConfig.java
View file @
97190e77
package
com
.
ruoyi
.
framework
.
config
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
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.DefaultResourceLoader
;
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
;
import
com.ruoyi.common.utils.StringUtils
;
/**
* 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
;
}
public
Resource
[]
resolveMapperLocations
(
String
[]
mapperLocations
)
{
ResourcePatternResolver
resourceResolver
=
new
PathMatchingResourcePatternResolver
();
List
<
Resource
>
resources
=
new
ArrayList
<
Resource
>();
if
(
mapperLocations
!=
null
)
{
for
(
String
mapperLocation
:
mapperLocations
)
{
try
{
Resource
[]
mappers
=
resourceResolver
.
getResources
(
mapperLocation
);
resources
.
addAll
(
Arrays
.
asList
(
mappers
));
}
catch
(
IOException
e
)
{
// ignore
}
}
}
return
resources
.
toArray
(
new
Resource
[
resources
.
size
()]);
}
@Bean
public
SqlSessionFactory
sqlSessionFactory
(
DataSource
dataSource
)
throws
Exception
{
String
typeAliasesPackage
=
env
.
getProperty
(
"mybatis.typeAliasesPackage"
);
String
mapperLocations
=
env
.
getProperty
(
"mybatis.mapperLocations"
);
String
configLocation
=
env
.
getProperty
(
"mybatis.configLocation"
);
typeAliasesPackage
=
setTypeAliasesPackage
(
typeAliasesPackage
);
VFS
.
addImplClass
(
SpringBootVFS
.
class
);
final
SqlSessionFactoryBean
sessionFactory
=
new
SqlSessionFactoryBean
();
sessionFactory
.
setDataSource
(
dataSource
);
sessionFactory
.
setTypeAliasesPackage
(
typeAliasesPackage
);
sessionFactory
.
setMapperLocations
(
resolveMapperLocations
(
StringUtils
.
split
(
mapperLocations
,
","
)));
sessionFactory
.
setConfigLocation
(
new
DefaultResourceLoader
().
getResource
(
configLocation
));
return
sessionFactory
.
getObject
();
}
}
\ No newline at end of file
//package com.ruoyi.framework.config;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.Arrays;
//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.DefaultResourceLoader;
//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;
//import com.ruoyi.common.utils.StringUtils;
//
///**
// * 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;
// }
//
// public Resource[] resolveMapperLocations(String[] mapperLocations)
// {
// ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
// List<Resource> resources = new ArrayList<Resource>();
// if (mapperLocations != null)
// {
// for (String mapperLocation : mapperLocations)
// {
// try
// {
// Resource[] mappers = resourceResolver.getResources(mapperLocation);
// resources.addAll(Arrays.asList(mappers));
// }
// catch (IOException e)
// {
// // ignore
// }
// }
// }
// return resources.toArray(new Resource[resources.size()]);
// }
//
// @Bean
// public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
// {
// String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
// String mapperLocations = env.getProperty("mybatis.mapperLocations");
// String configLocation = env.getProperty("mybatis.configLocation");
// typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
// VFS.addImplClass(SpringBootVFS.class);
//
// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(dataSource);
// sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
// sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
// sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
// return sessionFactory.getObject();
// }
//}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment