Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gjjs-bd-common
Overview
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
s_guodong
gjjs-bd-common
Commits
cde79a85
Commit
cde79a85
authored
Aug 03, 2023
by
s_guodong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
初始化的问题
parent
5ba7c945
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
112 additions
and
44 deletions
+112
-44
.gitignore
.gitignore
+16
-13
AbstractCommonResource.java
...om/ceb/gjjs/mda/resource/base/AbstractCommonResource.java
+19
-0
NeedInit.java
.../java/com/brilliance/mda/runtime/annotation/NeedInit.java
+14
-0
MdaScanner.java
...ava/com/brilliance/mda/runtime/mda/driver/MdaScanner.java
+34
-2
EmitterFactory.java
...liance/mda/runtime/mda/driver/compile/EmitterFactory.java
+4
-2
ModuleAnnotationProcess.java
...mda/driver/compile/processor/ModuleAnnotationProcess.java
+4
-4
BaseVO.java
.../main/java/com/brilliance/mda/runtime/request/BaseVO.java
+9
-0
AbstractRouteService.java
.../brilliance/mda/support/service/AbstractRouteService.java
+12
-23
No files found.
.gitignore
View file @
cde79a85
...
...
@@ -31,19 +31,22 @@ build/
### VS Code ###
.vscode/
/gjjs-business/src/main/java/com/ceb/gjjs/mda/bo/
/gjjs-business/src/main/java/com/ceb/gjjs/mda/dao/
/gjjs-business/src/main/java/com/ceb/gjjs/mda/emitter/
/gjjs-business/src/main/java/com/ceb/gjjs/mda/global/
/gjjs-business/src/main/java/com/ceb/gjjs/mda/manager/
/gjjs-business/src/main/resources/codeTable
/gjjs-business/src/main/resources/defaultRule
/gjjs-business/src/main/resources/i18n
/gjjs-business/src/main/resources/META-INF
/gjjs-business/src/main/resources/moduleInfo
/gjjs-business/src/test/java/com/ceb/gjjs/mda/junitTest/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/bo/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/dao/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/manager/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/manager/module/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/resource/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/service/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/service/impl/
/gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/vo/
/gjjs-bd-business/src/main/resources/codeTable
/gjjs-bd-business/src/main/resources/defaultRule
/gjjs-bd-business/src/main/resources/i18n
/gjjs-bd-business/src/main/resources/META-INF
/gjjs-bd-business/src/main/resources/moduleInfo
/gjjs-bd-business/src/test/java/com/ceb/gjjs/mda/junitTest/
log/
logs/
...
...
gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/resource/base/AbstractCommonResource.java
View file @
cde79a85
package
com
.
ceb
.
gjjs
.
mda
.
resource
.
base
;
import
com.brilliance.mda.runtime.mda.driver.compile.processor.ModuleAnnotationProcess
;
import
com.brilliance.mda.runtime.request.BaseVO
;
import
com.brilliance.mda.runtime.response.ResponseSet
;
import
com.brilliance.mda.support.service.ICommonService
;
...
...
@@ -8,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
javax.ws.rs.POST
;
import
javax.ws.rs.Path
;
import
javax.ws.rs.PathParam
;
import
java.util.Set
;
/**
* @author wangguangchao
...
...
@@ -20,6 +22,7 @@ public abstract class AbstractCommonResource<V extends BaseVO> {
@Path
(
"/init"
)
@POST
public
ResponseSet
<
V
>
init
(
@RequestBody
V
req
)
{
req
.
setNeedInit
(
true
);
return
getCommonService
().
init
(
req
);
}
...
...
@@ -52,6 +55,7 @@ public abstract class AbstractCommonResource<V extends BaseVO> {
@POST
public
ResponseSet
<
V
>
executeCheck
(
@PathParam
(
"rule"
)
String
rule
,
@RequestBody
V
req
)
{
String
[]
ruleArr
=
rule
.
split
(
","
);
setInitFlag
(
req
,
ModuleAnnotationProcess
.
needInitCheck
,
ruleArr
);
return
getCommonService
().
executeCheck
(
req
,
ruleArr
);
}
...
...
@@ -59,6 +63,7 @@ public abstract class AbstractCommonResource<V extends BaseVO> {
@POST
public
ResponseSet
<
V
>
executeRule
(
@PathParam
(
"rule"
)
String
rule
,
@RequestBody
V
req
)
{
String
[]
ruleArr
=
rule
.
split
(
","
);
setInitFlag
(
req
,
ModuleAnnotationProcess
.
needInitRule
,
ruleArr
);
ResponseSet
<
V
>
res
=
getCommonService
().
executeRule
(
req
,
ruleArr
);
return
res
;
}
...
...
@@ -87,4 +92,18 @@ public abstract class AbstractCommonResource<V extends BaseVO> {
public
ResponseSet
<
V
>
executeDocpanDetail
(
@RequestBody
V
req
)
{
return
getCommonService
().
executeDocpanDetail
(
req
);
}
private
void
setInitFlag
(
V
req
,
Set
<
String
>
needInitSet
,
String
[]
ruleArr
)
{
Class
<?
extends
AbstractCommonResource
>
aClass
=
this
.
getClass
();
Path
annotation
=
aClass
.
getAnnotation
(
Path
.
class
);
String
path
=
annotation
.
value
();
for
(
String
rule
:
ruleArr
)
{
if
(
needInitSet
.
contains
(
path
+
"@"
+
rule
))
{
req
.
setNeedInit
(
true
);
return
;
}
}
}
}
gjjs-bd-runtime/src/main/java/com/brilliance/mda/runtime/annotation/NeedInit.java
0 → 100644
View file @
cde79a85
package
com
.
brilliance
.
mda
.
runtime
.
annotation
;
import
java.lang.annotation.*
;
/**
* 是否需要执行初始化方法
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
NeedInit
{
boolean
value
()
default
true
;
}
gjjs-bd-runtime/src/main/java/com/brilliance/mda/runtime/mda/driver/MdaScanner.java
View file @
cde79a85
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
;
import
com.brilliance.mda.runtime.annotation.Check
;
import
com.brilliance.mda.runtime.annotation.NeedInit
;
import
com.brilliance.mda.runtime.annotation.Rule
;
import
com.brilliance.mda.runtime.mda.driver.compile.processor.ModuleAnnotationProcess
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
...
...
@@ -18,6 +23,7 @@ import org.springframework.stereotype.Component;
import
java.io.IOException
;
import
java.lang.annotation.Annotation
;
import
java.lang.reflect.Method
;
import
java.util.HashSet
;
import
java.util.LinkedHashSet
;
import
java.util.Map
;
...
...
@@ -93,15 +99,41 @@ public class MdaScanner implements ResourceLoaderAware, BeanDefinitionRegistryPo
for
(
Class
<?
extends
Annotation
>
annotationClass
:
annotationClasses
)
{
if
(
clazz
.
isAnnotationPresent
(
annotationClass
))
{
Set
<
Class
<?>>
set
=
map
.
computeIfAbsent
(
annotationClass
,
k
->
new
LinkedHashSet
<>());
set
.
add
(
Class
.
forName
(
className
));
set
.
add
(
clazz
);
Method
[]
declaredMethods
=
clazz
.
getDeclaredMethods
();
for
(
Method
method
:
declaredMethods
)
{
if
(
method
.
isAnnotationPresent
(
NeedInit
.
class
))
{
NeedInit
needInit
=
method
.
getAnnotation
(
NeedInit
.
class
);
boolean
need
=
needInit
.
value
();
if
(
need
)
{
if
(
method
.
isAnnotationPresent
(
Rule
.
class
))
{
Rule
rule
=
method
.
getAnnotation
(
Rule
.
class
);
path
=
rule
.
target
();
if
(!
StringUtils
.
isBlank
(
path
))
{
Set
<
String
>
needInitRule
=
ModuleAnnotationProcess
.
needInitRule
;
needInitRule
.
add
(
clazz
.
getSimpleName
().
toLowerCase
()
+
"@"
+
path
);
}
}
else
if
(
method
.
isAnnotationPresent
(
Check
.
class
))
{
Check
check
=
method
.
getAnnotation
(
Check
.
class
);
path
=
check
.
target
();
if
(!
StringUtils
.
isBlank
(
path
))
{
Set
<
String
>
needInitCheck
=
ModuleAnnotationProcess
.
needInitCheck
;
needInitCheck
.
add
(
clazz
.
getSimpleName
().
toLowerCase
()
+
"@"
+
path
);
}
}
}
}
}
}
}
}
return
map
;
}
@Override
public
void
postProcessBeanFactory
(
ConfigurableListableBeanFactory
configurableListableBeanFactory
)
throws
BeansException
{
public
void
postProcessBeanFactory
(
ConfigurableListableBeanFactory
configurableListableBeanFactory
)
throws
BeansException
{
}
}
gjjs-bd-runtime/src/main/java/com/brilliance/mda/runtime/mda/driver/compile/EmitterFactory.java
View file @
cde79a85
...
...
@@ -28,7 +28,7 @@ public class EmitterFactory implements InitializingBean {
@Autowired
private
MdaScanner
scanner
;
public
void
buildEmitter
(
String
...
transPack
){
public
void
buildEmitter
(
String
...
transPack
)
{
try
{
log
.
debug
(
"prepare to walk transaction"
);
Map
<
Class
<?>,
Set
<
Class
<?>>>
map
=
new
HashMap
<>();
...
...
@@ -46,13 +46,15 @@ public class EmitterFactory implements InitializingBean {
});
Set
<
Class
<?>>
transSet
=
map
.
get
(
Transaction
.
class
);
transSet
.
forEach
(
item
->
new
TransAnnotationProcessor
().
buildTransEmitter
(
item
,
scanner
.
getBeanDefinitionRegistry
()));
transSet
.
forEach
(
item
->
new
TransAnnotationProcessor
().
buildTransEmitter
(
item
,
scanner
.
getBeanDefinitionRegistry
()));
ModuleAnnotationProcess
.
reduceCache
();
TransAnnotationProcessor
.
getProcessQueue
().
clear
();
log
.
debug
(
"walk transaction finished"
);
//log.info("注册TableMeta {}个", TableMetaManager.getTableMetaCount());
log
.
info
(
"注册ModuleInfo {}个"
,
ModuleInfoManager
.
getModuleInfoCount
());
log
.
info
(
"注册Transaction {}个"
,
transSet
.
size
());
log
.
info
(
"需要初始化的check方法有:{}"
,
ModuleAnnotationProcess
.
needInitCheck
.
toString
());
log
.
info
(
"需要初始化的rule方法有:{}"
,
ModuleAnnotationProcess
.
needInitRule
.
toString
());
}
catch
(
Exception
e
)
{
log
.
error
(
"动态Emitter扫描包发生错误"
,
e
);
}
...
...
gjjs-bd-runtime/src/main/java/com/brilliance/mda/runtime/mda/driver/compile/processor/ModuleAnnotationProcess.java
View file @
cde79a85
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
.
compile
.
processor
;
import
com.brilliance.mda.runtime.annotation.Check
;
import
com.brilliance.mda.runtime.annotation.Default
;
import
com.brilliance.mda.runtime.annotation.Init
;
import
com.brilliance.mda.runtime.annotation.Rule
;
import
com.brilliance.mda.runtime.annotation.*
;
import
com.brilliance.mda.runtime.mda.FieldHolder
;
import
com.brilliance.mda.runtime.mda.IModule
;
import
com.brilliance.mda.runtime.mda.IModuleList
;
...
...
@@ -26,6 +23,9 @@ public class ModuleAnnotationProcess {
public
static
Map
<
String
,
ModuleRuleContext
>
cache
=
new
HashMap
<>();
public
static
Set
<
String
>
needInitRule
=
new
HashSet
<>();
public
static
Set
<
String
>
needInitCheck
=
new
HashSet
<>();
private
ModuleRuleContext
moduleRuleContext
;
private
Class
<?
extends
IModule
>
moduleClass
;
private
IModule
instatnce
;
...
...
gjjs-bd-runtime/src/main/java/com/brilliance/mda/runtime/request/BaseVO.java
View file @
cde79a85
...
...
@@ -4,6 +4,7 @@ import java.util.List;
import
java.util.Map
;
public
class
BaseVO
{
protected
boolean
needInit
;
protected
String
pageId
;
protected
Map
<
String
,
Object
>
params
;
...
...
@@ -52,4 +53,12 @@ public class BaseVO {
public
void
setPageSize
(
int
pageSize
)
{
this
.
pageSize
=
pageSize
;
}
public
boolean
isNeedInit
()
{
return
needInit
;
}
public
void
setNeedInit
(
boolean
needInit
)
{
this
.
needInit
=
needInit
;
}
}
gjjs-bd-runtime/src/main/java/com/brilliance/mda/support/service/AbstractRouteService.java
View file @
cde79a85
...
...
@@ -185,8 +185,8 @@ public abstract class AbstractRouteService<V extends BaseVO> {
}
public
boolean
isStdErrorNo
(
String
errorNo
)
{
//if (errorNo != null && errorNo.matches("E\\d{4}")) {
if
(
errorNo
!=
null
&&
!
errorNo
.
equals
(
""
))
{
//if (errorNo != null && errorNo.matches("E\\d{4}")) {
if
(
errorNo
!=
null
&&
!
errorNo
.
equals
(
""
))
{
return
true
;
}
return
false
;
...
...
@@ -325,6 +325,11 @@ public abstract class AbstractRouteService<V extends BaseVO> {
* 初始化步骤
*/
public
void
initTrans
(
V
req
)
{
if
(!
req
.
isNeedInit
())
{
logger
.
info
(
"不需要初始化"
);
return
;
}
logger
.
info
(
"开始初始化..."
);
StopWatch
watch
=
new
StopWatch
(
"initTrans"
);
IContext
ctx
=
MdaEnv
.
getContext
();
IRuleEmitter
emitter
=
getEmitter
();
...
...
@@ -453,27 +458,11 @@ public abstract class AbstractRouteService<V extends BaseVO> {
public
boolean
enterTransaction
(
V
req
)
{
if
(
req
!=
null
)
{
String
pageId
=
req
.
getPageId
();
ICache
<
String
,
IContext
>
cache
=
MdaEnv
.
getBean
(
ICache
.
CTX_CACHE
,
ICache
.
class
);
IContext
ctx
=
cache
.
get
(
pageId
);
if
(
ctx
==
null
)
{
Map
<
String
,
Object
>
params
=
req
.
getParams
();
chain
(
params
);
initTrans
(
req
);
ctx
=
MdaEnv
.
getContext
();
ctx
.
storeData
(
IContext
.
DISPLAY_KEY
,
req
);
// String key = cache.store(ctx);
req
.
setPageId
(
cache
.
generateKey
());
}
else
{
// wgc
//ctx.clearData();
ctx
.
resetParams
(
req
.
getParams
());
ctx
.
setVo
(
req
);
ctx
.
getFieldErrors
().
clear
();
ctx
.
storeData
(
IContext
.
DISPLAY_KEY
,
req
);
MdaEnv
.
setContext
(
ctx
);
}
Map
<
String
,
Object
>
params
=
req
.
getParams
();
chain
(
params
);
initTrans
(
req
);
IContext
ctx
=
MdaEnv
.
getContext
();
ctx
.
storeData
(
IContext
.
DISPLAY_KEY
,
req
);
}
return
true
;
}
...
...
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