Spring Data Rest を介して公開される Spring Data リポジトリを作成したいと思います。
問題は、私の「エンティティ」がデータベースに由来しないことです。カスタム注釈を持ち、スキャンされるクラスがいくつかあります。これにより、クライアントに公開したい情報が提供されます。
だから基本的に私は次のようなものが必要です:
@RestRepository(path="myClasses")
interface MyRepo extends Repository<MyClass, String> {
List<MyClass> findAll();
}
class MyRepoImpl implements MyRepo {
List<MyClass> classes;
MyRepoImpl() {
// fetch stuff via classpath scanning
// and save it to "classes"
}
@Override
List<MyClass> findAll() {
return classes;
}
}
@EnableCustomRepositories
カスタム FactoryBean などでカスタム注釈を取得するために、Spring Data MongoDB から約 10 個のファイルをコピー & ペーストしました。そして、それはまだ機能しません...
これを行う簡単な方法はありますか?もちろん、 custom を使用できますが、他のエンティティで@Controller
nice を使用することはできません。rel
私は本当に何かが必要でextends Repository<T, ID>
、いくつかのカスタムメソッドを作成します。または、Spring Data Rest がandメソッドCrudRepository
を見つけられるように使用する必要がありますか?findOne
findAll
編集:
より正確には:
Permissions
私のアプリケーションには、 Spring Security で使用される多くのハードコーディングがあります。権限の各セットには、独自のクラスがあります。例えば:
@Permission
class UserPermission {
public final static String RESET_PASSWORD = "USER_RESET_PASSWORD";
public final static String UPDATE_PROFILE = "USER_UPDATE_PROFILE";
}
現在PermissionGroup
、DB に永続化されるという永続化されたクラスもあります。これは基本的に次のとおりです。
class PermissionGroup {
ID id;
List<String> permissions;
}
私が望むのは、Spring Data Rest から典型的な URL を取得して、アクセス許可を公開することです。したがって、これらの URL 参照を使用して、PermissionGroup にアクセス許可を追加/削除できます。すなわち:
POST http://localhost:8080/app/permissionGroups
{
"permissions": [
{ "href" : "http://.../permissions/USER_RESET_PASSWORD" },
{ "href" : "http://.../permissions/USER_UPDATE_PROFILE" }
]
}