Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
07068892
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 搜索 >>
提交
07068892
编写于
2月 10, 2015
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Polishing
(cherry picked from commit
058714b0
)
上级
25644dbd
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
90 addition
and
80 deletion
+90
-80
spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java
...ramework/context/support/ResourceBundleMessageSource.java
+4
-1
spring-core/src/main/java/org/springframework/util/AlternativeJdkIdGenerator.java
...a/org/springframework/util/AlternativeJdkIdGenerator.java
+6
-7
spring-core/src/main/java/org/springframework/util/JdkIdGenerator.java
...rc/main/java/org/springframework/util/JdkIdGenerator.java
+4
-4
spring-core/src/main/java/org/springframework/util/SimpleIdGenerator.java
...main/java/org/springframework/util/SimpleIdGenerator.java
+3
-3
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AbstractMethodArgumentResolutionException.java
...on/support/AbstractMethodArgumentResolutionException.java
+7
-7
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MethodArgumentNotValidException.java
...r/annotation/support/MethodArgumentNotValidException.java
+6
-7
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MethodArgumentTypeMismatchException.java
...notation/support/MethodArgumentTypeMismatchException.java
+4
-4
spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolver.java
...ing/handler/invocation/HandlerMethodArgumentResolver.java
+7
-7
spring-messaging/src/main/java/org/springframework/messaging/simp/broker/SimpleBrokerMessageHandler.java
...ork/messaging/simp/broker/SimpleBrokerMessageHandler.java
+5
-8
spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java
...work/http/converter/json/Jackson2ObjectMapperBuilder.java
+1
-1
spring-web/src/main/java/org/springframework/web/client/MessageBodyClientHttpResponseWrapper.java
...work/web/client/MessageBodyClientHttpResponseWrapper.java
+43
-26
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyAdviceChain.java
...ervlet/mvc/method/annotation/ResponseBodyAdviceChain.java
+0
-5
未找到文件。
spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java
浏览文件 @
07068892
/*
* Copyright 2002-201
3
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -394,6 +394,8 @@ public class ResourceBundleMessageSource extends AbstractMessageSource implement
@Override
public
ResourceBundle
newBundle
(
String
baseName
,
Locale
locale
,
String
format
,
ClassLoader
loader
,
boolean
reload
)
throws
IllegalAccessException
,
InstantiationException
,
IOException
{
// Special handling of default encoding
if
(
format
.
equals
(
"java.properties"
))
{
String
bundleName
=
toBundleName
(
baseName
,
locale
);
final
String
resourceName
=
toResourceName
(
bundleName
,
"properties"
);
...
...
@@ -441,6 +443,7 @@ public class ResourceBundleMessageSource extends AbstractMessageSource implement
}
}
else
{
// Delegate handling of "java.class" format to standard Control
return
super
.
newBundle
(
baseName
,
locale
,
format
,
loader
,
reload
);
}
}
...
...
spring-core/src/main/java/org/springframework/util/AlternativeJdkIdGenerator.java
浏览文件 @
07068892
/*
* Copyright 2002-201
3
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -22,11 +22,10 @@ import java.util.Random;
import
java.util.UUID
;
/**
* An {@link org.springframework.util.IdGenerator IdGenerator} that uses
* {@link SecureRandom} for the initial seed and {@link Random} thereafter
* instead of calling {@link UUID#randomUUID()} every time as
* {@link org.springframework.util.JdkIdGenerator JdkIdGenerator} does.
* This provides a better balance between securely random id's and performance.
* An {@link IdGenerator} that uses {@link SecureRandom} for the initial seed and
* {@link Random} thereafter, instead of calling {@link UUID#randomUUID()} every
* time as {@link org.springframework.util.JdkIdGenerator JdkIdGenerator} does.
* This provides a better balance between securely random ids and performance.
*
* @author Rossen Stoyanchev
* @author Rob Winch
...
...
@@ -45,8 +44,8 @@ public class AlternativeJdkIdGenerator implements IdGenerator {
}
@Override
public
UUID
generateId
()
{
byte
[]
randomBytes
=
new
byte
[
16
];
this
.
random
.
nextBytes
(
randomBytes
);
...
...
spring-core/src/main/java/org/springframework/util/JdkIdGenerator.java
浏览文件 @
07068892
/*
* Copyright 2002-201
3
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -19,14 +19,14 @@ package org.springframework.util;
import
java.util.UUID
;
/**
* An
IdGenerator
that calls {@link java.util.UUID#randomUUID()}.
* An
{@link IdGenerator}
that calls {@link java.util.UUID#randomUUID()}.
*
* @author Rossen Stoyanchev
* @since 4.
2
* @since 4.
1.5
*/
public
class
JdkIdGenerator
implements
IdGenerator
{
@Override
public
UUID
generateId
()
{
return
UUID
.
randomUUID
();
}
...
...
spring-core/src/main/java/org/springframework/util/SimpleIdGenerator.java
浏览文件 @
07068892
/*
* Copyright 2002-201
3
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -20,10 +20,10 @@ import java.util.UUID;
import
java.util.concurrent.atomic.AtomicLong
;
/**
* A
n simple IdGenerator
that starts at 1 and increments by 1 with each call.
* A
simple {@link IdGenerator}
that starts at 1 and increments by 1 with each call.
*
* @author Rossen Stoyanchev
* @since 4.
2
* @since 4.
1.5
*/
public
class
SimpleIdGenerator
implements
IdGenerator
{
...
...
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AbstractMethodArgumentResolutionException.java
浏览文件 @
07068892
/*
* Copyright 2002-201
4
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -42,23 +42,23 @@ public abstract class AbstractMethodArgumentResolutionException extends Messagin
/**
* Create a new instance providing the invalid {@code MethodParameter} and
* a prepared description. Sub
-
classes should prepend the description with
* a prepared description. Subclasses should prepend the description with
* the help of {@link #getMethodParamMessage(org.springframework.core.MethodParameter)}.
*/
protected
AbstractMethodArgumentResolutionException
(
Message
<?>
message
,
MethodParameter
parameter
,
String
description
)
{
protected
AbstractMethodArgumentResolutionException
(
Message
<?>
message
,
MethodParameter
param
,
String
description
)
{
super
(
message
,
description
);
this
.
parameter
=
param
eter
;
this
.
parameter
=
param
;
}
/**
* Return the MethodParameter that was rejected.
*/
public
MethodParameter
getMethodParameter
()
{
public
final
MethodParameter
getMethodParameter
()
{
return
this
.
parameter
;
}
protected
static
String
getMethodParamMessage
(
MethodParameter
param
)
{
return
new
StringBuilder
(
"Could not resolve method parameter at index "
)
.
append
(
param
.
getParameterIndex
()).
append
(
" in method: "
)
...
...
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MethodArgumentNotValidException.java
浏览文件 @
07068892
/*
* Copyright 2002-201
4
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -49,22 +49,21 @@ public class MethodArgumentNotValidException extends AbstractMethodArgumentResol
public
MethodArgumentNotValidException
(
Message
<?>
message
,
MethodParameter
parameter
,
BindingResult
bindingResult
)
{
super
(
message
,
parameter
,
getMethodParamMessage
(
parameter
)
+
getValidationErrorMessage
(
parameter
,
bindingResult
));
super
(
message
,
parameter
,
getMethodParamMessage
(
parameter
)
+
getValidationErrorMessage
(
bindingResult
));
this
.
bindingResult
=
bindingResult
;
}
/**
* Return the BindingResult if the failure is validation-related or {@code null}.
* Return the BindingResult if the failure is validation-related,
* or {@code null} if none.
*/
public
BindingResult
getBindingResult
()
{
public
final
BindingResult
getBindingResult
()
{
return
this
.
bindingResult
;
}
private
static
String
getValidationErrorMessage
(
MethodParameter
parameter
,
BindingResult
bindingResult
)
{
private
static
String
getValidationErrorMessage
(
BindingResult
bindingResult
)
{
if
(
bindingResult
!=
null
)
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
", with "
).
append
(
bindingResult
.
getErrorCount
()).
append
(
" error(s): "
);
...
...
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MethodArgumentTypeMismatchException.java
浏览文件 @
07068892
/*
* Copyright 2002-201
4
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -29,11 +29,11 @@ import org.springframework.messaging.Message;
@SuppressWarnings
(
"serial"
)
public
class
MethodArgumentTypeMismatchException
extends
AbstractMethodArgumentResolutionException
{
/**
* Create a new instance with the invalid {@code MethodParameter}.
*/
public
MethodArgumentTypeMismatchException
(
Message
<?>
message
,
MethodParameter
param
eter
,
String
description
)
{
super
(
message
,
param
eter
,
getMethodParamMessage
(
parameter
)
+
description
);
public
MethodArgumentTypeMismatchException
(
Message
<?>
message
,
MethodParameter
param
,
String
description
)
{
super
(
message
,
param
,
getMethodParamMessage
(
param
)
+
description
);
}
}
spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolver.java
浏览文件 @
07068892
/*
* Copyright 2002-201
3
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -20,8 +20,8 @@ import org.springframework.core.MethodParameter;
import
org.springframework.messaging.Message
;
/**
* Strategy interface for resolving method parameters into argument values
in
* the context of a given {@link Message}.
* Strategy interface for resolving method parameters into argument values
*
in
the context of a given {@link Message}.
*
* @author Rossen Stoyanchev
* @since 4.0
...
...
@@ -39,12 +39,12 @@ public interface HandlerMethodArgumentResolver {
/**
* Resolves a method parameter into an argument value from a given message.
* @param parameter the method parameter to resolve.
This parameter must
* have previously been passed to
* @param parameter the method parameter to resolve.
*
This parameter must
have previously been passed to
* {@link #supportsParameter(org.springframework.core.MethodParameter)}
*
and it must have returned {@code true}
*
which must have returned {@code true}.
* @param message the currently processed message
* @return the resolved argument value, or {@code null}
.
* @return the resolved argument value, or {@code null}
* @throws Exception in case of errors with the preparation of argument values
*/
Object
resolveArgument
(
MethodParameter
parameter
,
Message
<?>
message
)
throws
Exception
;
...
...
spring-messaging/src/main/java/org/springframework/messaging/simp/broker/SimpleBrokerMessageHandler.java
浏览文件 @
07068892
/*
* Copyright 2002-201
4
the original author or authors.
* Copyright 2002-201
5
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.
...
...
@@ -68,7 +68,6 @@ public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler {
/**
* Configure a custom SubscriptionRegistry to use for storing subscriptions.
*
* <p><strong>Note</strong> that when a custom PathMatcher is configured via
* {@link #setPathMatcher}, if the custom registry is not an instance of
* {@link DefaultSubscriptionRegistry}, the provided PathMatcher is not used
...
...
@@ -102,9 +101,8 @@ public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler {
}
/**
* Configure a {@link MessageHeaderInitializer} to apply to the headers of all
* messages sent to the client outbound channel.
*
* Configure a {@link MessageHeaderInitializer} to apply to the headers
* of all messages sent to the client outbound channel.
* <p>By default this property is not set.
*/
public
void
setHeaderInitializer
(
MessageHeaderInitializer
headerInitializer
)
{
...
...
@@ -112,7 +110,7 @@ public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler {
}
/**
*
@r
eturn the configured header initializer.
*
R
eturn the configured header initializer.
*/
public
MessageHeaderInitializer
getHeaderInitializer
()
{
return
this
.
headerInitializer
;
...
...
@@ -131,7 +129,6 @@ public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler {
@Override
protected
void
handleMessageInternal
(
Message
<?>
message
)
{
MessageHeaders
headers
=
message
.
getHeaders
();
SimpMessageType
messageType
=
SimpMessageHeaderAccessor
.
getMessageType
(
headers
);
String
destination
=
SimpMessageHeaderAccessor
.
getDestination
(
headers
);
...
...
@@ -197,7 +194,7 @@ public class SimpleBrokerMessageHandler extends AbstractBrokerMessageHandler {
protected
void
sendMessageToSubscribers
(
String
destination
,
Message
<?>
message
)
{
MultiValueMap
<
String
,
String
>
subscriptions
=
this
.
subscriptionRegistry
.
findSubscriptions
(
message
);
if
(
(
subscriptions
.
size
()
>
0
)
&&
logger
.
isDebugEnabled
())
{
if
(
!
subscriptions
.
isEmpty
(
)
&&
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Broadcasting to "
+
subscriptions
.
size
()
+
" sessions."
);
}
for
(
String
sessionId
:
subscriptions
.
keySet
())
{
...
...
spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java
浏览文件 @
07068892
...
...
@@ -232,7 +232,7 @@ public class Jackson2ObjectMapperBuilder {
* @see com.fasterxml.jackson.databind.ObjectMapper#addMixInAnnotations(Class, Class)
*/
public
Jackson2ObjectMapperBuilder
mixIn
(
Class
<?>
target
,
Class
<?>
mixinSource
)
{
if
(
mix
Ins
!=
null
)
{
if
(
mix
inSource
!=
null
)
{
this
.
mixIns
.
put
(
target
,
mixinSource
);
}
return
this
;
...
...
spring-web/src/main/java/org/springframework/web/client/MessageBodyClientHttpResponseWrapper.java
浏览文件 @
07068892
/*
* Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.client
;
import
java.io.IOException
;
...
...
@@ -9,32 +25,33 @@ import org.springframework.http.HttpStatus;
import
org.springframework.http.client.ClientHttpResponse
;
/**
* Implementation of {@link ClientHttpResponse} that can not only check if the response
* has a message body, but also if its length is 0 (i.e. empty) by actually reading the input stream.
* Implementation of {@link ClientHttpResponse} that can not only check if
* the response has a message body, but also if its length is 0 (i.e. empty)
* by actually reading the input stream.
*
* @author Brian Clozel
* @since 4.1
* @since 4.1
.5
* @see <a href="http://tools.ietf.org/html/rfc7230#section-3.3.3">rfc7230 Section 3.3.3</a>
*/
class
MessageBodyClientHttpResponseWrapper
implements
ClientHttpResponse
{
private
final
ClientHttpResponse
response
;
private
PushbackInputStream
pushbackInputStream
;
private
final
ClientHttpResponse
response
;
public
MessageBodyClientHttpResponseWrapper
(
ClientHttpResponse
response
)
throws
IOException
{
this
.
response
=
response
;
}
/**
* Indicates whether the response has a message body.
*
* <p>Implementation returns {@code false} for:
* <ul>
*
<li>a response status of {@code 1XX}, {@code 204} or {@code 304}</li>
*
<li>a {@code Content-Length} header of {@code 0}</li>
* <li>a response status of {@code 1XX}, {@code 204} or {@code 304}</li>
* <li>a {@code Content-Length} header of {@code 0}</li>
* </ul>
*
* @return {@code true} if the response has a message body, {@code false} otherwise
* @throws IOException in case of I/O errors
*/
...
...
@@ -52,13 +69,11 @@ class MessageBodyClientHttpResponseWrapper implements ClientHttpResponse {
/**
* Indicates whether the response has an empty message body.
*
* <p>Implementation tries to read the first bytes of the response stream:
* <ul>
*
<li>if no bytes are available, the message body is empty</li>
*
<li>otherwise it is not empty and the stream is reset to its start for further reading</li>
* <li>if no bytes are available, the message body is empty</li>
* <li>otherwise it is not empty and the stream is reset to its start for further reading</li>
* </ul>
*
* @return {@code true} if the response has a zero-length message body, {@code false} otherwise
* @throws IOException in case of I/O errors
*/
...
...
@@ -79,44 +94,46 @@ class MessageBodyClientHttpResponseWrapper implements ClientHttpResponse {
}
else
{
this
.
pushbackInputStream
=
new
PushbackInputStream
(
body
);
int
b
=
pushbackInputStream
.
read
();
int
b
=
this
.
pushbackInputStream
.
read
();
if
(
b
==
-
1
)
{
return
true
;
}
else
{
pushbackInputStream
.
unread
(
b
);
this
.
pushbackInputStream
.
unread
(
b
);
return
false
;
}
}
}
@Override
public
Http
Status
getStatusCode
()
throws
IOException
{
return
response
.
getStatusCode
();
public
Http
Headers
getHeaders
()
{
return
this
.
response
.
getHeaders
();
}
@Override
public
int
getRawStatusCode
()
throws
IOException
{
return
response
.
getRawStatusCode
(
);
public
InputStream
getBody
()
throws
IOException
{
return
(
this
.
pushbackInputStream
!=
null
?
this
.
pushbackInputStream
:
this
.
response
.
getBody
()
);
}
@Override
public
String
getStatusText
()
throws
IOException
{
return
response
.
getStatusText
();
public
HttpStatus
getStatusCode
()
throws
IOException
{
return
this
.
response
.
getStatusCode
();
}
@Override
public
void
close
()
{
re
sponse
.
clos
e
();
public
int
getRawStatusCode
()
throws
IOException
{
re
turn
this
.
response
.
getRawStatusCod
e
();
}
@Override
public
InputStream
getBody
()
throws
IOException
{
return
this
.
pushbackInputStream
!=
null
?
this
.
pushbackInputStream
:
response
.
getBody
();
public
String
getStatusText
()
throws
IOException
{
return
this
.
response
.
getStatusText
();
}
@Override
public
HttpHeaders
getHeaders
()
{
return
response
.
getHeaders
();
public
void
close
()
{
this
.
response
.
close
();
}
}
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyAdviceChain.java
浏览文件 @
07068892
...
...
@@ -18,9 +18,6 @@ package org.springframework.web.servlet.mvc.method.annotation;
import
java.util.List
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.HttpMessageConverter
;
...
...
@@ -37,8 +34,6 @@ import org.springframework.web.method.ControllerAdviceBean;
*/
class
ResponseBodyAdviceChain
{
private
static
final
Log
logger
=
LogFactory
.
getLog
(
ResponseBodyAdviceChain
.
class
);
private
final
List
<
Object
>
advice
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录