2017-05-11 14 views
1

私はsimple Spring Boot 1.5 Spring Data REST applicationをプロファイリングしています。驚いたことに、Atteo Evo InflectorJProfilerによると半分以上をCPUで驚異的なホットスポットです:春のデータを静的に設定するREST

enter image description here

あなたはApache Benchでこれを再現することができるはずです。

ab2 -c 1 -n 10000 http://localhost:8080/people 

リポジトリがあります:

@RepositoryRestResource(collectionResourceRel = "people", path = "people") 
public interface PersonRepository 
    extends PagingAndSortingRepository<Person, Long> { 
    List<Person> findByLastName(@Param("name") String name); 
} 

および(Lombok -ed)データ:

はなぜ春HATEOASは、リポジトリが静的collectionResourceRelを定義するとき@RepositoryRestResourceリポジトリを活用しようとしていますか?任意のアイデアは、どのような正しい注釈は、私のSpring Data RESTアプリケーションを構成するのですか?

答えて

1

はあなたのエンティティに@RestResource(rel="people", path="people")を追加します。 残念ながら `

@Data 
@NoArgsConstructor 
@Entity 
@RestResource(rel="people", path="people") 
public class Person { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 

    private String firstName; 
    private String lastName; 

    @JsonSerialize(using = MyLocalDateSerializer.class) 
    private LocalDate birthDate; 

    public Person(String firstName, String lastName, String birthDate) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
     this.birthDate = LocalDate.parse(birthDate); 
    } 
} 

、春HATEOUSは、エンティティのリポジトリが@RepositoryRestResource場合でも、エンティティの@RestResource注釈、it delegates to the Atteo Evo Inflection rel providerを見つけることができなかった場合。エンティティとリポジトリの両方にrelpath(重複している)情報があるので、これらの情報を同期して保持するように注意する必要があります。私はa Spring Data REST issue on thisを開いた。

関連する問題