public class ContentNegotiationManagerFactoryBean extends ObjectSE implements FactoryBean<ContentNegotiationManager>, ServletContextAware, InitializingBean
ContentNegotiationManager を作成し、1 つ以上の ContentNegotiationStrategy インスタンスで構成するファクトリ。5.0 の時点で、setStrategies(List) を使用して正確な戦略を設定できます。
別の方法として、このビルダーのメソッドを使用してオンまたはオフにしたりカスタマイズしたりできる、以下で説明するデフォルトのセットに依存することもできます。
setFavorPathExtension(boolean) を false に設定するか、そうでなければ setStrategies(List) を介して明示的に使用する戦略を設定することを検討してください。| コンストラクターと説明 |
|---|
ContentNegotiationManagerFactoryBean() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addMediaType(StringSE fileExtension, MediaType mediaType)Java コードで使用する setMediaTypes(java.util.Properties) の代替。 |
void | addMediaTypes(MapSE<StringSE, MediaType> mediaTypes)Java コードで使用する setMediaTypes(java.util.Properties) の代替。 |
void | afterPropertiesSet() 指定されたすべての Bean プロパティを設定した(そして BeanFactoryAware と ApplicationContextAware を満たした)後に BeanFactory によって呼び出されます。 |
ContentNegotiationManager | build() 実際に ContentNegotiationManager をビルドします。 |
ContentNegotiationManager | getObject() このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。 |
ClassSE<?> | getObjectType() この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は null を返します。 |
boolean | isSingleton() このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、 FactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか? |
void | setDefaultContentType(MediaType contentType) コンテンツ型がリクエストされない場合に使用するデフォルトのコンテンツ型を設定します。 |
void | setDefaultContentTypes(ListSE<MediaType> contentTypes) コンテンツ型がリクエストされない場合に使用するデフォルトのコンテンツ型を設定します。 |
void | setDefaultContentTypeStrategy(ContentNegotiationStrategy strategy) コンテンツ型がリクエストされていないときに使用するコンテンツ型を決定するために使用するカスタム ContentNegotiationStrategy を設定します。 |
void | setFavorParameter(boolean favorParameter) リクエストされたメディア型を判別するためにリクエストパラメーター(デフォルトでは "format" )を使用する必要があるかどうか。 |
void | setFavorPathExtension(boolean favorPathExtension) リクエストされたメディア型を判別するために、URL パスのパス拡張子を使用する必要があるかどうか。 |
void | setIgnoreAcceptHeader(boolean ignoreAcceptHeader) "Accept" リクエストヘッダーのチェックを無効にするかどうか。 |
void | setIgnoreUnknownPathExtensions(boolean ignore) どのメディア型にも解決できないパス拡張子を持つリクエストを無視するかどうか。 |
void | setMediaTypes(PropertiesSE mediaTypes) パス拡張またはクエリパラメーターから抽出されたキーから MediaType へのマッピングを追加します。 |
void | setParameterName(StringSE parameterName)setFavorParameter(boolean) がオンのときに使用するクエリパラメーター名を設定します。 |
void | setServletContext(ServletContextEE servletContext)ServletContext を挿入するために Spring によって呼び出されます。 |
void | setStrategies(ListSE<ContentNegotiationStrategy> strategies) 使用する戦略の正確なリストを設定します。 |
void | setUseJaf(boolean useJaf) 使用すべきではありません。 5.0 以降、 setUseRegisteredExtensionsOnly(boolean) が優先されます。 |
void | setUseRegisteredExtensionsOnly(boolean useRegisteredExtensionsOnly)favorPathExtension または setFavorParameter(boolean) が設定されている場合、このプロパティは、登録された MediaType マッピングのみを使用するか、動的な解決を許可するかを決定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setStrategies(@Nullable ListSE<ContentNegotiationStrategy> strategies)
注意 : このメソッドの使用は、デフォルトの固定された戦略セットをカスタマイズするこのクラスの他のすべての setter の使用と相互に排他的です。詳細については、クラスレベルのドキュメントを参照してください。
strategies - 使用する戦略 public void setFavorPathExtension(boolean favorPathExtension)
デフォルトでは、これは true に設定されます。その場合、/hotels.pdf のリクエストは、"Accept" ヘッダーに関係なく "application/pdf" のリクエストとして解釈されます。
public void setMediaTypes(PropertiesSE mediaTypes)
パス拡張戦略は、ServletContext.getMimeType(java.lang.String)EE および MediaTypeFactory を使用してパス拡張を解決しようとします。
mediaTypes - メディア型のマッピング addMediaType(String, MediaType), addMediaTypes(Map)public void addMediaType(StringSE fileExtension, MediaType mediaType)
setMediaTypes(java.util.Properties) の代替。public void addMediaTypes(@Nullable MapSE<StringSE,MediaType> mediaTypes)
setMediaTypes(java.util.Properties) の代替。public void setIgnoreUnknownPathExtensions(boolean ignore)
false に設定すると、一致するものがなければ HttpMediaTypeNotAcceptableException になります。 デフォルトでは、これは true に設定されています。
@DeprecatedSE public void setUseJaf(boolean useJaf)
setUseRegisteredExtensionsOnly(boolean) を使用してください。public void setUseRegisteredExtensionsOnly(boolean useRegisteredExtensionsOnly)
favorPathExtension または setFavorParameter(boolean) が設定されている場合、このプロパティは、登録された MediaType マッピングのみを使用するか、動的な解決を許可するかを決定します。MediaTypeFactory 経由。デフォルトではこれは設定されておらず、動的解決がオンになっています。
public void setFavorParameter(boolean favorParameter)
media type mappings を登録する必要があります。 デフォルトでは、これは false に設定されています。
public void setParameterName(StringSE parameterName)
setFavorParameter(boolean) がオンのときに使用するクエリパラメーター名を設定します。 デフォルトのパラメーター名は "format" です。
public void setIgnoreAcceptHeader(boolean ignoreAcceptHeader)
デフォルトでは、この値は false に設定されています。
public void setDefaultContentType(MediaType contentType)
デフォルトでは、これは設定されていません。
public void setDefaultContentTypes(ListSE<MediaType> contentTypes)
デフォルトでは、これは設定されていません。
public void setDefaultContentTypeStrategy(ContentNegotiationStrategy strategy)
ContentNegotiationStrategy を設定します。デフォルトでは、これは設定されていません。
public void setServletContext(ServletContextEE servletContext)
ServletContextAware の setServletContext servletContext - このオブジェクトが使用する ServletContext オブジェクト InitializingBean.afterPropertiesSet(), ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)public void afterPropertiesSet()
InitializingBeanこのメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されている場合にのみ可能な初期化を実行し、設定ミスの場合に例外をスローできます。
InitializingBean の afterPropertiesSet public ContentNegotiationManager build()
ContentNegotiationManager をビルドします。@Nullable public ContentNegotiationManager getObject()
FactoryBeanBeanFactory と同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。
この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する FactoryBeanNotInitializedException をスローします。
Spring 2.0 以降、FactoryBeans は null オブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。
FactoryBean<ContentNegotiationManager> の getObject null にすることができます)FactoryBeanNotInitializedExceptionpublic ClassSE<?> getObjectType()
FactoryBeannull を返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで null を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。
FactoryBean<ContentNegotiationManager> の getObjectType null ListableBeanFactory.getBeansOfType(java.lang.Class<T>)public boolean isSingleton()
FactoryBeanFactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか? 注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、getObject() から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、true を返さないでください。
FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 : false を返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張 SmartFactoryBean インターフェースの実装は、SmartFactoryBean.isPrototype() メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンな FactoryBean 実装は、isSingleton() 実装が false を返す場合、常に独立したインスタンスを返すと単純に想定されます。
FactoryBean は通常シングルトンインスタンスを管理するため、デフォルトの実装では true が返されます。
FactoryBean<ContentNegotiationManager> の isSingleton FactoryBean.getObject(), SmartFactoryBean.isPrototype()