Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
panwangnan
schbrain-parent
Commits
a2161510
Commit
a2161510
authored
Jul 09, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add OnceApplicationContextEventListener
parent
e212b712
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
15 deletions
+71
-15
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/listener/DubboConfigInitEventListener.java
...onfigure/dubbo/listener/DubboConfigInitEventListener.java
+14
-14
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/OnceApplicationContextEventListener.java
...k/support/spring/OnceApplicationContextEventListener.java
+56
-0
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/defaults/DefaultPropertiesEnvironmentPostProcessor.java
...g/defaults/DefaultPropertiesEnvironmentPostProcessor.java
+1
-1
No files found.
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/listener/DubboConfigInitEventListener.java
View file @
a2161510
package
com.schbrain.framework.autoconfigure.dubbo.listener
;
package
com.schbrain.framework.autoconfigure.dubbo.listener
;
import
com.schbrain.framework.support.spring.OnceApplicationContextEventListener
;
import
org.apache.dubbo.config.ConfigCenterConfig
;
import
org.apache.dubbo.config.ConfigCenterConfig
;
import
org.apache.dubbo.config.context.ConfigManager
;
import
org.apache.dubbo.config.context.ConfigManager
;
import
org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor
;
import
org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor
;
...
@@ -7,9 +8,9 @@ import org.apache.dubbo.config.spring.context.event.DubboConfigInitEvent;
...
@@ -7,9 +8,9 @@ import org.apache.dubbo.config.spring.context.event.DubboConfigInitEvent;
import
org.apache.dubbo.config.spring.util.DubboBeanUtils
;
import
org.apache.dubbo.config.spring.util.DubboBeanUtils
;
import
org.apache.dubbo.rpc.model.ApplicationModel
;
import
org.apache.dubbo.rpc.model.ApplicationModel
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.core.PriorityOrdered
;
import
org.springframework.core.PriorityOrdered
;
import
org.springframework.core.env.ConfigurableEnvironment
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -20,30 +21,29 @@ import static org.apache.dubbo.config.spring.util.EnvironmentUtils.filterDubboPr
...
@@ -20,30 +21,29 @@ import static org.apache.dubbo.config.spring.util.EnvironmentUtils.filterDubboPr
* @see ReferenceAnnotationBeanPostProcessor#postProcessBeanFactory(ConfigurableListableBeanFactory)
* @see ReferenceAnnotationBeanPostProcessor#postProcessBeanFactory(ConfigurableListableBeanFactory)
* @since 2023-05-08
* @since 2023-05-08
*/
*/
class
DubboConfigInitEventListener
implements
ApplicationListener
<
DubboConfigInitEvent
>,
PriorityOrdered
{
class
DubboConfigInitEventListener
extends
OnceApplicationContextEventListener
<
DubboConfigInitEvent
>
implements
PriorityOrdered
{
private
final
Configurable
ApplicationContext
applicationContex
t
;
private
final
Configurable
Environment
environmen
t
;
DubboConfigInitEventListener
(
ConfigurableApplicationContext
applicationContext
)
{
DubboConfigInitEventListener
(
ConfigurableApplicationContext
applicationContext
)
{
this
.
applicationContext
=
applicationContext
;
super
(
applicationContext
);
this
.
environment
=
applicationContext
.
getEnvironment
();
}
}
@Override
@Override
public
void
onApplicationEvent
(
DubboConfigInitEvent
event
)
{
public
int
getOrder
()
{
if
(
event
.
getApplicationContext
()
==
applicationContext
)
{
return
HIGHEST_PRECEDENCE
;
ApplicationModel
applicationModel
=
DubboBeanUtils
.
getApplicationModel
(
applicationContext
);
ConfigManager
configManager
=
applicationModel
.
getApplicationConfigManager
();
configManager
.
addConfigCenter
(
buildConfigCenterConfig
());
}
}
}
@Override
@Override
public
int
getOrder
()
{
protected
void
onEvent
(
DubboConfigInitEvent
event
)
{
return
HIGHEST_PRECEDENCE
;
ApplicationModel
applicationModel
=
DubboBeanUtils
.
getApplicationModel
(
getApplicationContext
());
ConfigManager
configManager
=
applicationModel
.
getApplicationConfigManager
();
configManager
.
addConfigCenter
(
buildConfigCenterConfig
());
}
}
private
ConfigCenterConfig
buildConfigCenterConfig
()
{
private
ConfigCenterConfig
buildConfigCenterConfig
()
{
Map
<
String
,
String
>
externalConfiguration
=
filterDubboProperties
(
applicationContext
.
getEnvironment
()
);
Map
<
String
,
String
>
externalConfiguration
=
filterDubboProperties
(
environment
);
ConfigCenterConfig
configCenterConfig
=
new
ConfigCenterConfig
();
ConfigCenterConfig
configCenterConfig
=
new
ConfigCenterConfig
();
configCenterConfig
.
setAppExternalConfig
(
externalConfiguration
);
configCenterConfig
.
setAppExternalConfig
(
externalConfiguration
);
return
configCenterConfig
;
return
configCenterConfig
;
...
...
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/OnceApplicationContextEventListener.java
0 → 100644
View file @
a2161510
package
com.schbrain.framework.support.spring
;
import
org.springframework.beans.BeansException
;
import
org.springframework.boot.web.context.WebServerInitializedEvent
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.context.ApplicationEvent
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.context.event.ApplicationContextEvent
;
import
static
org
.
springframework
.
util
.
ObjectUtils
.
nullSafeEquals
;
/**
* 使用此类可以避免事件被处罚两次导致意外
* <p>
* 当类路径下存在 actuator,并且指定了不同端口的时候,实现了{@link ApplicationContextEvent}的事件会触发两次
*
* @author liaozan
* @see org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration.DifferentManagementContextConfiguration#onApplicationEvent(WebServerInitializedEvent)
* @since 2023/7/9
*/
@SuppressWarnings
(
"JavadocReference"
)
public
abstract
class
OnceApplicationContextEventListener
<
E
extends
ApplicationEvent
>
implements
ApplicationListener
<
E
>,
ApplicationContextAware
{
private
ApplicationContext
applicationContext
;
public
OnceApplicationContextEventListener
()
{
this
(
null
);
}
public
OnceApplicationContextEventListener
(
ApplicationContext
applicationContext
)
{
setApplicationContext
(
applicationContext
);
}
@Override
public
void
onApplicationEvent
(
E
event
)
{
if
(
nullSafeEquals
(
getApplicationContext
(),
event
.
getSource
()))
{
onEvent
(
event
);
}
}
protected
ApplicationContext
getApplicationContext
()
{
if
(
applicationContext
==
null
)
{
throw
new
IllegalStateException
(
"applicationContext must be not null"
);
}
return
applicationContext
;
}
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
this
.
applicationContext
=
applicationContext
;
}
protected
abstract
void
onEvent
(
E
event
);
}
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/defaults/DefaultPropertiesEnvironmentPostProcessor.java
View file @
a2161510
...
@@ -62,7 +62,7 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
...
@@ -62,7 +62,7 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
defaultProperties
.
put
(
"spring.mvc.throw-exception-if-no-handler-found"
,
true
);
defaultProperties
.
put
(
"spring.mvc.throw-exception-if-no-handler-found"
,
true
);
// datetime
// datetime
defaultProperties
.
put
(
"spring.mvc.format.date"
,
DatePattern
.
NORM_DATE_PATTERN
);
defaultProperties
.
put
(
"spring.mvc.format.date"
,
DatePattern
.
NORM_DATE_PATTERN
);
defaultProperties
.
put
(
"spring.mvc.format.time"
,
DatePattern
.
NORM_TIME_
FORMAT
);
defaultProperties
.
put
(
"spring.mvc.format.time"
,
DatePattern
.
NORM_TIME_
PATTERN
);
defaultProperties
.
put
(
"spring.mvc.format.date-time"
,
DatePattern
.
NORM_DATETIME_PATTERN
);
defaultProperties
.
put
(
"spring.mvc.format.date-time"
,
DatePattern
.
NORM_DATETIME_PATTERN
);
defaultProperties
.
put
(
"spring.jackson.date-format"
,
DatePattern
.
NORM_DATETIME_PATTERN
);
defaultProperties
.
put
(
"spring.jackson.date-format"
,
DatePattern
.
NORM_DATETIME_PATTERN
);
defaultProperties
.
put
(
"spring.jackson.time-zone"
,
TimeZone
.
getDefault
());
defaultProperties
.
put
(
"spring.jackson.time-zone"
,
TimeZone
.
getDefault
());
...
...
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