Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
082c524c
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,体验更适合开发者的 AI 搜索 >>
提交
082c524c
编写于
9月 19, 2018
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Polishing
上级
d3c08552
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
26 addition
and
34 deletion
+26
-34
spring-beans/src/main/java/org/springframework/beans/BeanUtils.java
...ns/src/main/java/org/springframework/beans/BeanUtils.java
+3
-5
spring-beans/src/main/java/org/springframework/beans/factory/groovy/GroovyBeanDefinitionWrapper.java
...ork/beans/factory/groovy/GroovyBeanDefinitionWrapper.java
+4
-5
spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java
...s/factory/support/AbstractAutowireCapableBeanFactory.java
+8
-13
spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java
...ramework/beans/factory/support/BeanDefinitionBuilder.java
+1
-3
spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java
...gframework/beans/factory/support/ConstructorResolver.java
+3
-2
spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java
...xt/annotation/ConfigurationClassBeanDefinitionReader.java
+2
-1
spring-context/src/main/java/org/springframework/scripting/config/ScriptBeanDefinitionParser.java
...ramework/scripting/config/ScriptBeanDefinitionParser.java
+5
-5
未找到文件。
spring-beans/src/main/java/org/springframework/beans/BeanUtils.java
浏览文件 @
082c524c
...
...
@@ -122,11 +122,9 @@ public abstract class BeanUtils {
return
instantiateClass
(
clazz
.
getDeclaredConstructor
());
}
catch
(
NoSuchMethodException
ex
)
{
if
(
KotlinDetector
.
isKotlinReflectPresent
()
&&
KotlinDetector
.
isKotlinType
(
clazz
))
{
Constructor
<
T
>
ctor
=
findPrimaryConstructor
(
clazz
);
if
(
ctor
!=
null
)
{
return
instantiateClass
(
ctor
);
}
Constructor
<
T
>
ctor
=
findPrimaryConstructor
(
clazz
);
if
(
ctor
!=
null
)
{
return
instantiateClass
(
ctor
);
}
throw
new
BeanInstantiationException
(
clazz
,
"No default constructor found"
,
ex
);
}
...
...
spring-beans/src/main/java/org/springframework/beans/factory/groovy/GroovyBeanDefinitionWrapper.java
浏览文件 @
082c524c
...
...
@@ -24,7 +24,6 @@ import groovy.lang.GroovyObjectSupport;
import
org.springframework.beans.BeanWrapper
;
import
org.springframework.beans.BeanWrapperImpl
;
import
org.springframework.beans.factory.config.AutowireCapableBeanFactory
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.beans.factory.config.BeanDefinitionHolder
;
import
org.springframework.beans.factory.config.ConstructorArgumentValues
;
...
...
@@ -182,16 +181,16 @@ class GroovyBeanDefinitionWrapper extends GroovyObjectSupport {
AbstractBeanDefinition
bd
=
getBeanDefinition
();
if
(
AUTOWIRE
.
equals
(
property
))
{
if
(
"byName"
.
equals
(
newValue
))
{
bd
.
setAutowireMode
(
A
utowireCapableBeanFactory
.
AUTOWIRE_BY_NAME
);
bd
.
setAutowireMode
(
A
bstractBeanDefinition
.
AUTOWIRE_BY_NAME
);
}
else
if
(
"byType"
.
equals
(
newValue
))
{
bd
.
setAutowireMode
(
A
utowireCapableBeanFactory
.
AUTOWIRE_BY_TYPE
);
bd
.
setAutowireMode
(
A
bstractBeanDefinition
.
AUTOWIRE_BY_TYPE
);
}
else
if
(
"constructor"
.
equals
(
newValue
))
{
bd
.
setAutowireMode
(
A
utowireCapableBeanFactory
.
AUTOWIRE_CONSTRUCTOR
);
bd
.
setAutowireMode
(
A
bstractBeanDefinition
.
AUTOWIRE_CONSTRUCTOR
);
}
else
if
(
Boolean
.
TRUE
.
equals
(
newValue
))
{
bd
.
setAutowireMode
(
A
utowireCapableBeanFactory
.
AUTOWIRE_BY_NAME
);
bd
.
setAutowireMode
(
A
bstractBeanDefinition
.
AUTOWIRE_BY_NAME
);
}
}
// constructorArgs
...
...
spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java
浏览文件 @
082c524c
...
...
@@ -1148,8 +1148,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
// Candidate constructors for autowiring?
Constructor
<?>[]
ctors
=
determineConstructorsFromBeanPostProcessors
(
beanClass
,
beanName
);
if
(
ctors
!=
null
||
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_CONSTRUCTOR
||
if
(
ctors
!=
null
||
mbd
.
getResolvedAutowireMode
()
==
AUTOWIRE_CONSTRUCTOR
||
mbd
.
hasConstructorArgumentValues
()
||
!
ObjectUtils
.
isEmpty
(
args
))
{
return
autowireConstructor
(
beanName
,
mbd
,
ctors
,
args
);
}
...
...
@@ -1351,25 +1350,21 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
PropertyValues
pvs
=
(
mbd
.
hasPropertyValues
()
?
mbd
.
getPropertyValues
()
:
null
);
if
(
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_BY_NAME
||
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_BY_TYPE
)
{
if
(
mbd
.
getResolvedAutowireMode
()
==
AUTOWIRE_BY_NAME
||
mbd
.
getResolvedAutowireMode
()
==
AUTOWIRE_BY_TYPE
)
{
MutablePropertyValues
newPvs
=
new
MutablePropertyValues
(
pvs
);
// Add property values based on autowire by name if applicable.
if
(
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_BY_NAME
)
{
if
(
mbd
.
getResolvedAutowireMode
()
==
AUTOWIRE_BY_NAME
)
{
autowireByName
(
beanName
,
mbd
,
bw
,
newPvs
);
}
// Add property values based on autowire by type if applicable.
if
(
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_BY_TYPE
)
{
if
(
mbd
.
getResolvedAutowireMode
()
==
AUTOWIRE_BY_TYPE
)
{
autowireByType
(
beanName
,
mbd
,
bw
,
newPvs
);
}
pvs
=
newPvs
;
}
boolean
hasInstAwareBpps
=
hasInstantiationAwareBeanPostProcessors
();
boolean
needsDepCheck
=
(
mbd
.
getDependencyCheck
()
!=
Roo
tBeanDefinition
.
DEPENDENCY_CHECK_NONE
);
boolean
needsDepCheck
=
(
mbd
.
getDependencyCheck
()
!=
Abstrac
tBeanDefinition
.
DEPENDENCY_CHECK_NONE
);
PropertyDescriptor
[]
filteredPds
=
null
;
if
(
hasInstAwareBpps
)
{
...
...
@@ -1582,9 +1577,9 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
for
(
PropertyDescriptor
pd
:
pds
)
{
if
(
pd
.
getWriteMethod
()
!=
null
&&
(
pvs
==
null
||
!
pvs
.
contains
(
pd
.
getName
())))
{
boolean
isSimple
=
BeanUtils
.
isSimpleProperty
(
pd
.
getPropertyType
());
boolean
unsatisfied
=
(
dependencyCheck
==
Roo
tBeanDefinition
.
DEPENDENCY_CHECK_ALL
)
||
(
isSimple
&&
dependencyCheck
==
Roo
tBeanDefinition
.
DEPENDENCY_CHECK_SIMPLE
)
||
(!
isSimple
&&
dependencyCheck
==
Roo
tBeanDefinition
.
DEPENDENCY_CHECK_OBJECTS
);
boolean
unsatisfied
=
(
dependencyCheck
==
Abstrac
tBeanDefinition
.
DEPENDENCY_CHECK_ALL
)
||
(
isSimple
&&
dependencyCheck
==
Abstrac
tBeanDefinition
.
DEPENDENCY_CHECK_SIMPLE
)
||
(!
isSimple
&&
dependencyCheck
==
Abstrac
tBeanDefinition
.
DEPENDENCY_CHECK_OBJECTS
);
if
(
unsatisfied
)
{
throw
new
UnsatisfiedDependencyException
(
mbd
.
getResourceDescription
(),
beanName
,
pd
.
getName
(),
"Set this property value or disable dependency checking for this bean."
);
...
...
spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java
浏览文件 @
082c524c
...
...
@@ -69,9 +69,7 @@ public final class BeanDefinitionBuilder {
* @param instanceSupplier a callback for creating an instance of the bean
* @since 5.0
*/
public
static
<
T
>
BeanDefinitionBuilder
genericBeanDefinition
(
@Nullable
Class
<
T
>
beanClass
,
Supplier
<
T
>
instanceSupplier
)
{
public
static
<
T
>
BeanDefinitionBuilder
genericBeanDefinition
(
Class
<
T
>
beanClass
,
Supplier
<
T
>
instanceSupplier
)
{
BeanDefinitionBuilder
builder
=
new
BeanDefinitionBuilder
(
new
GenericBeanDefinition
());
builder
.
beanDefinition
.
setBeanClass
(
beanClass
);
builder
.
beanDefinition
.
setInstanceSupplier
(
instanceSupplier
);
...
...
spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java
浏览文件 @
082c524c
...
...
@@ -47,6 +47,7 @@ import org.springframework.beans.factory.InjectionPoint;
import
org.springframework.beans.factory.NoSuchBeanDefinitionException
;
import
org.springframework.beans.factory.NoUniqueBeanDefinitionException
;
import
org.springframework.beans.factory.UnsatisfiedDependencyException
;
import
org.springframework.beans.factory.config.AutowireCapableBeanFactory
;
import
org.springframework.beans.factory.config.ConstructorArgumentValues
;
import
org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder
;
import
org.springframework.beans.factory.config.DependencyDescriptor
;
...
...
@@ -174,7 +175,7 @@ class ConstructorResolver {
// Need to resolve the constructor.
boolean
autowiring
=
(
chosenCtors
!=
null
||
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_CONSTRUCTOR
);
mbd
.
getResolvedAutowireMode
()
==
AutowireCapableBeanFactory
.
AUTOWIRE_CONSTRUCTOR
);
ConstructorArgumentValues
resolvedValues
=
null
;
int
minNrOfArgs
;
...
...
@@ -461,7 +462,7 @@ class ConstructorResolver {
AutowireUtils
.
sortFactoryMethods
(
candidates
);
ConstructorArgumentValues
resolvedValues
=
null
;
boolean
autowiring
=
(
mbd
.
getResolvedAutowireMode
()
==
RootBeanDefinition
.
AUTOWIRE_CONSTRUCTOR
);
boolean
autowiring
=
(
mbd
.
getResolvedAutowireMode
()
==
AutowireCapableBeanFactory
.
AUTOWIRE_CONSTRUCTOR
);
int
minTypeDiffWeight
=
Integer
.
MAX_VALUE
;
Set
<
Method
>
ambiguousFactoryMethods
=
null
;
...
...
spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java
浏览文件 @
082c524c
...
...
@@ -35,6 +35,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
import
org.springframework.beans.factory.config.BeanDefinitionHolder
;
import
org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader
;
import
org.springframework.beans.factory.parsing.SourceExtractor
;
import
org.springframework.beans.factory.support.AbstractBeanDefinition
;
import
org.springframework.beans.factory.support.AbstractBeanDefinitionReader
;
import
org.springframework.beans.factory.support.BeanDefinitionReader
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistry
;
...
...
@@ -221,7 +222,7 @@ class ConfigurationClassBeanDefinitionReader {
beanDef
.
setFactoryBeanName
(
configClass
.
getBeanName
());
beanDef
.
setUniqueFactoryMethodName
(
methodName
);
}
beanDef
.
setAutowireMode
(
Roo
tBeanDefinition
.
AUTOWIRE_CONSTRUCTOR
);
beanDef
.
setAutowireMode
(
Abstrac
tBeanDefinition
.
AUTOWIRE_CONSTRUCTOR
);
beanDef
.
setAttribute
(
org
.
springframework
.
beans
.
factory
.
annotation
.
RequiredAnnotationBeanPostProcessor
.
SKIP_REQUIRED_CHECK_ATTRIBUTE
,
Boolean
.
TRUE
);
...
...
spring-context/src/main/java/org/springframework/scripting/config/ScriptBeanDefinitionParser.java
浏览文件 @
082c524c
/*
* Copyright 2002-201
7
the original author or authors.
* Copyright 2002-201
8
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -134,11 +134,11 @@ class ScriptBeanDefinitionParser extends AbstractBeanDefinitionParser {
String
autowire
=
element
.
getAttribute
(
AUTOWIRE_ATTRIBUTE
);
int
autowireMode
=
parserContext
.
getDelegate
().
getAutowireMode
(
autowire
);
// Only "byType" and "byName" supported, but maybe other default inherited...
if
(
autowireMode
==
Generic
BeanDefinition
.
AUTOWIRE_AUTODETECT
)
{
autowireMode
=
Generic
BeanDefinition
.
AUTOWIRE_BY_TYPE
;
if
(
autowireMode
==
Abstract
BeanDefinition
.
AUTOWIRE_AUTODETECT
)
{
autowireMode
=
Abstract
BeanDefinition
.
AUTOWIRE_BY_TYPE
;
}
else
if
(
autowireMode
==
Generic
BeanDefinition
.
AUTOWIRE_CONSTRUCTOR
)
{
autowireMode
=
Generic
BeanDefinition
.
AUTOWIRE_NO
;
else
if
(
autowireMode
==
Abstract
BeanDefinition
.
AUTOWIRE_CONSTRUCTOR
)
{
autowireMode
=
Abstract
BeanDefinition
.
AUTOWIRE_NO
;
}
bd
.
setAutowireMode
(
autowireMode
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录