From a8741dd3716b54be7b65f9e722166627d67b793e Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 26 Dec 2016 11:26:58 +0100 Subject: [PATCH] Polishing --- .../DefaultAdvisorAutoProxyCreator.java | 29 ++++++++++--------- .../format/datetime/DateFormatter.java | 5 ++-- .../datetime/DateFormatterRegistrar.java | 17 ++++++----- ...eTimeFormatAnnotationFormatterFactory.java | 4 +-- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java index 044c7bbc116..dccf975db98 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2016 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,15 +19,16 @@ package org.springframework.aop.framework.autoproxy; import org.springframework.beans.factory.BeanNameAware; /** - * BeanPostProcessor implementation that creates AOP proxies based on all candidate - * Advisors in the current BeanFactory. This class is completely generic; it contains - * no special code to handle any particular aspects, such as pooling aspects. + * {@code BeanPostProcessor} implementation that creates AOP proxies based on all + * candidate {@code Advisor}s in the current {@code BeanFactory}. This class is + * completely generic; it contains no special code to handle any particular aspects, + * such as pooling aspects. * *

It's possible to filter out advisors - for example, to use multiple post processors - * of this type in the same factory - by setting the {@code usePrefix} property - * to true, in which case only advisors beginning with the DefaultAdvisorAutoProxyCreator's - * bean name followed by a dot (like "aapc.") will be used. This default prefix can be - * changed from the bean name by setting the {@code advisorBeanNamePrefix} property. + * of this type in the same factory - by setting the {@code usePrefix} property to true, + * in which case only advisors beginning with the DefaultAdvisorAutoProxyCreator's bean + * name followed by a dot (like "aapc.") will be used. This default prefix can be changed + * from the bean name by setting the {@code advisorBeanNamePrefix} property. * The separator (.) will also be used in this case. * * @author Rod Johnson @@ -40,22 +41,22 @@ public class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea public final static String SEPARATOR = "."; - private boolean usePrefix; + private boolean usePrefix = false; private String advisorBeanNamePrefix; /** - * Set whether to exclude advisors with a certain prefix - * in the bean name. + * Set whether to only include advisors with a certain prefix in the bean name. + *

Default is {@code false}, including all beans of type {@code Advisor}. + * @see #setAdvisorBeanNamePrefix */ public void setUsePrefix(boolean usePrefix) { this.usePrefix = usePrefix; } /** - * Return whether to exclude advisors with a certain prefix - * in the bean name. + * Return whether to only include advisors with a certain prefix in the bean name. */ public boolean isUsePrefix() { return this.usePrefix; @@ -89,7 +90,7 @@ public class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea /** - * Consider Advisor beans with the specified prefix as eligible, if activated. + * Consider {@code Advisor} beans with the specified prefix as eligible, if activated. * @see #setUsePrefix * @see #setAdvisorBeanNamePrefix */ diff --git a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java index 4b7115b6f55..92237b9d583 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java @@ -27,7 +27,6 @@ import java.util.Map; import java.util.TimeZone; import org.springframework.format.Formatter; -import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat.ISO; import org.springframework.util.StringUtils; @@ -43,6 +42,8 @@ import org.springframework.util.StringUtils; */ public class DateFormatter implements Formatter { + private static final TimeZone UTC = TimeZone.getTimeZone("UTC"); + private static final Map ISO_PATTERNS; static { @@ -176,7 +177,7 @@ public class DateFormatter implements Formatter { throw new IllegalStateException("Unsupported ISO format " + this.iso); } SimpleDateFormat format = new SimpleDateFormat(pattern); - format.setTimeZone(TimeZone.getTimeZone("UTC")); + format.setTimeZone(UTC); return format; } if (StringUtils.hasLength(this.stylePattern)) { diff --git a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java index 9e9b20a4550..00d20d68e27 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2016 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. @@ -26,14 +26,17 @@ import org.springframework.format.FormatterRegistry; import org.springframework.util.Assert; /** - * Configures Date formatting for use with Spring. + * Configures basic date formatting for use with Spring, primarily for + * {@link org.springframework.format.annotation.DateTimeFormat} declarations. + * Applies to fields of type {@link Date}, {@link Calendar} and {@code long}. * *

Designed for direct instantiation but also exposes the static - * {@link #addDateConverters(ConverterRegistry)} utility method for ad hoc use - * against any {@code ConverterRegistry} instance. + * {@link #addDateConverters(ConverterRegistry)} utility method for + * ad-hoc use against any {@code ConverterRegistry} instance. * * @author Phillip Webb * @since 3.2 + * @see org.springframework.format.datetime.standard.DateTimeFormatterRegistrar * @see org.springframework.format.datetime.joda.JodaTimeFormatterRegistrar * @see FormatterRegistrar#registerFormatters */ @@ -43,9 +46,9 @@ public class DateFormatterRegistrar implements FormatterRegistrar { /** - * Set the date formatter to register. If not specified no formatter is registered. - * This method can be used if global formatter configuration is required. - * @param dateFormatter the date formatter + * Set a global date formatter to register. + *

If not specified, no general formatter for non-annotated + * {@link Date} and {@link Calendar} fields will be registered. */ public void setFormatter(DateFormatter dateFormatter) { Assert.notNull(dateFormatter, "DateFormatter must not be null"); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java index 65edf8bbf34..3423516ca1f 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java @@ -30,8 +30,7 @@ import org.springframework.format.Printer; import org.springframework.format.annotation.DateTimeFormat; /** - * Formats fields annotated with the {@link DateTimeFormat} annotation using - * a {@link DateFormatter}. + * Formats fields annotated with the {@link DateTimeFormat} annotation using a {@link DateFormatter}. * * @author Phillip Webb * @since 3.2 @@ -40,7 +39,6 @@ import org.springframework.format.annotation.DateTimeFormat; public class DateTimeFormatAnnotationFormatterFactory extends EmbeddedValueResolutionSupport implements AnnotationFormatterFactory { - private static final Set> FIELD_TYPES; static {