---
schema_version: "1"
id: 98872079ec19943653f1827c006b6978ab7b1ab52acdfd84b969fd4a6b5a2fd3
title: 暗黙的な設定
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/implicit-configurations.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/implicit-configurations
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c7d2099db335dcf1441a557cacbfd928fe2def331bb1e0b5a70544b8a4305db4
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# 暗黙的な設定

一部の設定は暗黙的な設定に分類されます。パラメーターが 1 つも必須ではない場合は、設定を暗黙的に使用できます。たとえば、​`myConfig`​ 設定オブジェクトに ​`param1`​ という必須パラメーターがあるとします。

```java
<example:my-config name="myConfig" param1="required value" />

<flow>
	<example:operation config-ref="myConfig" />
</flow>
```

そして、代わりに bar パラメーターが省略可能になったとします。

```java
<example:my-config name="myConfig" />

<flow>
	<example:operation config-ref="myFoo" />
</flow>
```

この場合、my-config 要素全体 (そして以降の config-ref) は、実際には効果を持たないため冗長となります。この場合は、暗黙的な設定を使用できます。

```java
<flow>
	<example:operation />
</flow>
```

`my-config`​ には必須パラメーターがないため、SDK は暗黙的なインスタンスを作成でき、このインスタンスでは、すべてのパラメーターが自動的にデフォルト値に割り当てられます。暗黙的な設定は、パラメーターのデフォルト値に応じて静的または動的になります。デフォルト値のいずれかが式である場合、暗黙的な設定は動的になります。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">式をデフォルト値として使用すると、​<a href="https://docs.mulesoft.com/mule-sdk/latest/define-operations#position-independence" class="xref page">位置の独立性</a>​のベストプラクティスに違反します。</td></tr></tbody></table>

## [](#暗黙的な設定と明示的な設定の混在)暗黙的な設定と明示的な設定の混在

暗黙的な設定と明示的な設定を一緒に使用することができます。

```java
<flow>
	<example:operation />
	<example:operation config-ref="myConfig" />
</flow>
```

<table><tbody><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">暗黙的な ​<code>config</code>​ は設定種別ごとに 1 つだけ作成されます。2 つの操作で同じ種別の暗黙的な設定を使用しようとすると、それぞれの操作はまったく同じインスタンスを使用します。</td></tr></tbody></table>

```java
<flow>
	<example:operation />
	<example:operation />
	<!-- Both operations use the same config instance -->
</flow>
```

## [](#明示的な設定の強制的な使用)明示的な設定の強制的な使用

バージョン 1.3 以降で使用できます。

必須パラメーターが 1 つもなくても、常に明示的な設定を強制的に使用したいケースがあります。通常、このような要件は、明確さや使いやすさの向上を目的とするものです。

`@NoImplicit`​ アノテーションを使用すると、SDK に対して、特定の設定種別では暗黙的なインスタンスを作成しないように指示できます。

```java
@Extension(name="example")
@NoImplicit
@Operations(ExampleOperations.class)
public class ExampleModule {

	@Parameter
	@Optional
	public String bar;



}
```

また、設定が別のクラスに外部化されている場合にも、このアノテーションを使用できます。

```java
@Extension(name="example")
@Configurations(MyConfiguration.class)
public class ExampleModule {

}

@Configuration(name="myConfig")
@NoImplicit
@Operations(ExampleOperations.class)
public class MyConfiguration {

	@Parameter
	@Optional
	public String bar;


}
```