ので、同じように、あなたの春ブーツアプリケーションにSpring Boot Starter Data Cassandra依存関係を追加することです最も簡単な方法...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
また、これは春データカサンドラdependencyに追加されますあなたの申請。
春データカサンドラを使用すると、使用して、アプリケーションの鍵空間(複数可)を設定することができますCassandraClusterFactoryBean
(またはより正確には、サブクラス... CassandraCqlClusterFactoryBean
)setKeyspaceCreations(:Set)メソッドを呼び出すことによって。
KeyspaceActionSpecificationクラスはかなり自明です。 KeyspaceActionSpecificationFactoryBeanで作成してSet
に追加して、のsetKeyspaceCreations(..)
メソッドに渡すこともできます。
アプリケーションのテーブルを生成するには、基本的にSD Cassandra @Table注釈を使用してアプリケーションドメインオブジェクト(エンティティ)に注釈を付け、ドメインオブジェクト/エンティティがアプリケーションのCLASSPATHに存在することを確認する必要があります。
具体的には、アプリケーション@Configuration
クラスにSD Cassandra AbstractClusterConfigurationクラスを拡張させることができます。そこには、getEntityBasePackages():String[]メソッドがあり、アプリケーションドメインオブジェクト/エンティティクラスが含まれているパッケージの場所を指定することができます。この場合、SD Cassandraは@Table
ドメインオブジェクト/エンティティの場合にscanに使用します。正しく識別アプリケーション@Table
ドメインオブジェクト/エンティティと
、あなたはCassandraSessionFactoryBean
方法、setSchemaAction(:SchemaAction)を使用してCREATE
にSDカサンドラSchemaActionを設定します。これは、あなたのCassandraSessionFactoryBean
のidentified適切なKeyspaceを適切に提供しながら、スキャン中に見つかったすべてのドメインオブジェクト/エンティティのためのKeyspaceのテーブルを作成します。
アプリケーションが複数のキースペースを作成/使用する場合は、特定のキー空間に属するエンティティに対してentityBasePackages
構成プロパティを適切に設定して、各キースペースに対して別々のCassandraSessionFactoryBean
を作成する必要があります。そのKeyspaceで作成されます。今
...ユーザーごとに「追加」のテーブルの
、それはかなり複雑でトリッキーです。
ここでは、Springプロファイルを利用できるかもしれませんが、一般にプロファイルは起動時にのみ適用されます。別のユーザーがすでに実行中のアプリケーションにログインする場合は、実行時にApplicationContext
に追加の@Configuration
クラスを追加する方法が必要です。
あなた春ブーツアプリケーションがAnnotationConfigApplicationContext
への参照を注入し、アプリケーションにログインしているユーザーに基づいて@Configuration
プログラムでregister追加クラスにログインイベントでそれを使用することができます。 ApplicationContext.refresh()
でregister(Class...)
通話をフォローする必要があります。
テーブルがすでに存在する状況を適切に処理する必要もあります。
これは現在SD Cassandraではサポートされていませんが、詳細はDATACASS-219を参照してください。
技術的には、実行時にすべてのユーザーにアプリケーションが必要とするすべてのテーブルを作成し、Cassandraのセキュリティ設定を使用してロールごとの個々のユーザーアクセスを制限し、割り当てられたアクセス許可を制限する方が簡単です。
ユーザがアプリケーションにログインしたときに必要に応じて一時的なキースペースやテーブルを作成するだけで、ユーザがログアウトしたときにドロップすることもできます。
ここではさまざまな選択肢がありますが、アーキテクチャ上の決定、トレードオフ、考慮事項にはさらに詳しい点がありますが、技術的な実現可能性があるので注意してください。
これが役に立ちます。
乾杯!
を指定アプリケーションの起動時にキースペースとテーブルを作成します。私が紛失しているものは他にありますか?私を案内してください。 – Milesh