Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
103c1aa8
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
103c1aa8
编写于
5月 13, 2010
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
exclude abstract lazy-init beans from MBean exposure as well (SPR-6784)
上级
a1e4f4f4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
5 deletion
+11
-5
org.springframework.context/src/main/java/org/springframework/jmx/export/MBeanExporter.java
...in/java/org/springframework/jmx/export/MBeanExporter.java
+9
-5
org.springframework.context/src/test/java/org/springframework/jmx/export/autodetectMBeans.xml
.../java/org/springframework/jmx/export/autodetectMBeans.xml
+2
-0
未找到文件。
org.springframework.context/src/main/java/org/springframework/jmx/export/MBeanExporter.java
浏览文件 @
103c1aa8
...
...
@@ -44,7 +44,6 @@ import org.springframework.aop.target.LazyInitTargetSource;
import
org.springframework.beans.factory.BeanClassLoaderAware
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.BeanFactoryAware
;
import
org.springframework.beans.factory.BeanIsAbstractException
;
import
org.springframework.beans.factory.CannotLoadBeanClassException
;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.beans.factory.InitializingBean
;
...
...
@@ -873,7 +872,7 @@ public class MBeanExporter extends MBeanRegistrationSupport
beanNames
.
addAll
(
Arrays
.
asList
(((
ConfigurableBeanFactory
)
this
.
beanFactory
).
getSingletonNames
()));
}
for
(
String
beanName
:
beanNames
)
{
if
(!
isExcluded
(
beanName
))
{
if
(!
isExcluded
(
beanName
)
&&
!
isBeanDefinitionAbstract
(
this
.
beanFactory
,
beanName
)
)
{
try
{
Class
beanClass
=
this
.
beanFactory
.
getType
(
beanName
);
if
(
beanClass
!=
null
&&
callback
.
include
(
beanClass
,
beanName
))
{
...
...
@@ -900,9 +899,6 @@ public class MBeanExporter extends MBeanRegistrationSupport
}
// otherwise ignore beans where the class is not resolvable
}
catch
(
BeanIsAbstractException
ex
)
{
// ignore - can't expose an abstract bean
}
}
}
}
...
...
@@ -917,6 +913,14 @@ public class MBeanExporter extends MBeanRegistrationSupport
this
.
excludedBeans
.
contains
(
beanName
.
substring
(
BeanFactory
.
FACTORY_BEAN_PREFIX
.
length
())))));
}
/**
* Return whether the specified bean definition should be considered as abstract.
*/
private
boolean
isBeanDefinitionAbstract
(
ListableBeanFactory
beanFactory
,
String
beanName
)
{
return
(
beanFactory
instanceof
ConfigurableListableBeanFactory
&&
beanFactory
.
containsBeanDefinition
(
beanName
)
&&
((
ConfigurableListableBeanFactory
)
beanFactory
).
getBeanDefinition
(
beanName
).
isAbstract
());
}
//---------------------------------------------------------------------
// Notification and listener management
...
...
org.springframework.context/src/test/java/org/springframework/jmx/export/autodetectMBeans.xml
浏览文件 @
103c1aa8
...
...
@@ -25,4 +25,6 @@
<bean
id=
"toBeIgnored"
class=
"javax.management.DynamicMBean"
abstract=
"true"
/>
<bean
id=
"toBeIgnoredToo"
class=
"javax.management.DynamicMBean"
abstract=
"true"
lazy-init=
"true"
/>
</beans>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录