---
schema_version: "1"
id: 376921a6e14c4a1ef8234044086348eb500bd3a65a22bd3f82eaa6898616c93b
title: Spring Module 1.5
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/spring-module/1.5/index.md
canonical_url: https://docs.mulesoft.com/jp/spring-module/1.5/
source_site: docs.mulesoft.com
content_type: documentation
content_hash: ff609a254253e52ce5d3e662f0623f9e753b9279b65f1ec689f659d0dc13ce17
description: MuleSoft Documentation Site
release: "1.5"
latest: false
---
# Spring Module 1.5

Spring Module により、Mule アプリケーションで Spring Framework を使用できます。

リリースノート: [Spring Module リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/spring-module-release-notes)​  
Exchange: [Spring Module](https://www.mulesoft.com/exchange/org.mule.modules/mule-spring-module/)

## [](#プロジェクトへの-spring-module-の追加)プロジェクトへの Spring Module の追加

Anypoint Studio 7 では、デフォルト設定で Spring Module が提供されます。

**\[Mule Palette (Mule パレット)\]**​ で、「Spring」を検索し、Authorization Filter 操作を Studio キャンバスにドラッグします。

## [](#spring-module-を設定する)Spring Module を設定する

1. 次の設定を追加します。
    
    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <mule xmlns:spring="http://www.mulesoft.org/schema/mule/spring"
          xmlns="http://www.mulesoft.org/schema/mule/core"
          xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
            http://www.mulesoft.org/schema/mule/core/current/mule.xsd
            http://www.mulesoft.org/schema/mule/spring
            http://www.mulesoft.org/schema/mule/spring/current/mule-spring.xsd">
    
        <spring:config name="springConfig" files="beans.xml" />
    
    </mule>
    ```
2. `beans.xml`​ ファイルを ​`src/main/resources`​ に格納します。
    
    Spring 設定が有効でなければなりません。beans.xml ファイルの例を次に示します。
    
    ```xml
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    
        xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
          http://www.springframework.org/schema/jdbc
          http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-4.2.xsd
          http://www.springframework.org/schema/security
          http://www.springframework.org/schema/security/spring-security-4.2.xsd">
    
        <jdbc:embedded-database id="dataSource" type="DERBY">
            <jdbc:script location="classpath:db/sql/create-db.sql" />
            <jdbc:script location="classpath:db/sql/insert-data.sql" />
        </jdbc:embedded-database>
    
    </beans>
    ```

アプリケーションを起動するには、Spring Module で使用する beans ファイルをエクスポートする必要があります。​[「リソースのエクスポート方法」](https://docs.mulesoft.com/mule-runtime/latest/how-to-export-resources)​を参照してください。

Anypoint Studio 7.2 以降を使用している場合、​`mule-artifact.json`​ ファイルを手動で更新する必要はありません。

Mule では、Spring bean が宣言される記述子も必要であるため、Studio 内の埋め込みパッケージャーにより、プロジェクトから取得するすべてのリソースを使用して自動的に生成されます。ただし、エクスポートする必要のあるリソースを宣言する場合、Studio によってそれらのリソースのみがパッケージ化されます。

次の例では、​`mule-artifact.json`​ で ​`beans.xml`​ ファイルを宣言できるようにしています。

```example
{
    "name": "MyApp",
    "minMuleVersion": "4.2.1",
    "classLoaderModelLoaderDescriptor": {
        "id": "mule",
        "attributes": {
            "exportedResources": [
                "/org/mule/myapp/beans.xml"
            ]
        }
    }
  }
}
```

## [](#mule-コンポーネントの-spring-オブジェクト)Mule コンポーネントの Spring オブジェクト

次のように Spring オブジェクトを Mule 設定コンポーネントで使用することで、たとえば、Spring Bean で作成した Derby データソースを参照できます。

```xml
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:db="http://www.mulesoft.org/schema/mule/db"
      xmlns:spring="http://www.mulesoft.org/schema/mule/spring"
      xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
        http://www.mulesoft.org/schema/mule/core/current/mule.xsd
        http://www.mulesoft.org/schema/mule/spring
        http://www.mulesoft.org/schema/mule/spring/current/mule-spring.xsd
        http://www.mulesoft.org/schema/mule/db
        http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd">

    <spring:config name="springConfig" files="beans.xml" />

    <db:config name="derbyConfig" doc:name="Database Config"  >
        <db:derby-connection database="datasource" create="true" />
    </db:config>
</mule>
```

## [](#spring-プロパティプレースホルダー)Spring プロパティプレースホルダー

Spring プロパティプレースホルダーで定義されたプロパティを Mule アプリケーション内で使用することはできません。これらは、Spring 設定ファイルでのみ使用できます。ただし、Mule で ​`<configuration-properties/>`​ を使用して定義したプロパティは、Spring 設定ファイルで使用できます。

## [](#spring-オブジェクトの制限)Spring オブジェクトの制限

Spring Module を使用するには、実装と挿入の制限を考慮してください。

- Spring オブジェクトでは、Mule API ライフサイクルメソッドを実装することはできません。
- Spring オブジェクトは、Mule API サービスでは挿入できません。使用できる唯一のサービスは ​`org.mule.runtime.api.artifact.Registry`​ で、Mule API 内の他のすべてのサービスへのアクセスに使用できます。この場合は、​`@PostConstruct`​ をメソッドに対して使用することで、オブジェクトを初期化して Mule API サービスを取得します。

## [](#spring-セキュリティのセキュリティマネージャーとしての使用)Spring セキュリティのセキュリティマネージャーとしての使用

<table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content">プレーンテキストのパスワードで Spring Framework 5.x を使用している場合は、パスワード値の先頭に ​<code>{noop}</code>​ を付ける必要があります。たとえば、パスワード ​<code>admin</code>​ は ​<code>{noop}admin</code>​ になります。</td></tr></tbody></table>

Spring Module では、Spring セキュリティを Mule アプリケーションのセキュリティマネージャーとして使用できます。 Spring 設定ファイルで認証マネージャーを定義する必要があります。

```xml
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:jdbc="http://www.springframework.org/schema/jdbc"
  xmlns:ss="http://www.springframework.org/schema/security"

  xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
      http://www.springframework.org/schema/jdbc
      http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.2.xsd
      http://www.springframework.org/schema/security
      http://www.springframework.org/schema/security/spring-security-4.2.xsd">

  <ss:authentication-manager alias="authenticationManager">
    <ss:authentication-provider>
      <ss:user-service id="userService">
        <ss:user name="admin" password="admin" authorities="ROLE_ADMIN" />
        <ss:user name="joe" password="secret" authorities="ROLE_ADMIN" />
        <ss:user name="anon" password="anon" authorities="ROLE_ANON" />
        <ss:user name="user" password="password" authorities="ROLE_ANON" />
        <ss:user name="ross" password="ross" authorities="ROLE_ANON" />
        <ss:user name="marie" password="marie" authorities="ROLE_ANON" />
      </ss:user-service>
    </ss:authentication-provider>
  </ss:authentication-manager>

</beans>
```

Spring 認証マネージャーを活用した Mule アプリケーションのセキュリティマネージャーは、次のように定義できます。

```xml
<?xml version="1.0" encoding="UTF-8"?>
<mule
  xmlns:spring="http://www.mulesoft.org/schema/mule/spring"
  xmlns="http://www.mulesoft.org/schema/mule/core"
  xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core
    http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/spring
    http://www.mulesoft.org/schema/mule/spring/current/mule-spring.xsd">

  <spring:config name="springConfig" files="beans.xml" />

  <spring:security-manager>
    <spring:delegate-security-provider
      name="memory-provider"
      delegate-ref="authenticationManager" />
  </spring:security-manager>

</mule>
```

## [](#spring_auth_filter)Spring 認証検索条件を使用した認証の検証

Spring Module は、Mule セキュリティマネージャーを使用して認証を検証できない場合に失敗する検索条件をサポートします。

```xml
<?xml version="1.0" encoding="UTF-8"?>
<mule
  xmlns:http="http://www.mulesoft.org/schema/mule/http"
  xmlns:db="http://www.mulesoft.org/schema/mule/db"
  xmlns:spring="http://www.mulesoft.org/schema/mule/spring"
  xmlns="http://www.mulesoft.org/schema/mule/core"
  xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core
    http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/spring
    http://www.mulesoft.org/schema/mule/spring/current/mule-spring.xsd
    http://www.mulesoft.org/schema/mule/db
    http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
    http://www.mulesoft.org/schema/mule/http
    http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">

  <spring:config name="springConfig" files="beans.xml" />

  <spring:security-manager>
    <spring:delegate-security-provider
      name="memory-provider"
      delegate-ref="authenticationManager" />
  </spring:security-manager>

  <http:listener-config
    name="HTTP_Listener_config"
     doc:name="HTTP Listener config"  >
      <http:listener-connection
        host="0.0.0.0"
        port="9090" />
  </http:listener-config>

  <flow name="spring-exampleFlow"  >
    <http:listener
      config-ref="HTTP_Listener_config"
      path="/"
      doc:name="Listener"  />
    <http:basic-security-filter
      realm="mule" />
      <spring:authorization-filter
        requiredAuthorities="ROLE_ADMIN" />
  </flow>
</mule>
```

`http:basic-security-filter`​ は、基本認証を使用してユーザーを認証しようとします。認証に成功すると、Mule はユーザー名を取得し、Spring の ​`authorization-filter`​ で使用してそのユーザーを検索し、ROLE\_ADMIN 権限で要求を認証しようとします。

## [](#関連情報)関連情報

- [Mule アプリケーションのプロパティプレースホルダー](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties)
- [Mule 4 への Spring Module の移行](https://docs.mulesoft.com/mule-runtime/latest/)
- [MuleSoft ヘルプセンター](https://help.mulesoft.com)