我有一个简单的Springboot项目,其实体为:
@Entity
@Getter
@Setter
@ToString
@RequiredArgsConstructor
public class User implements UserDetails {
@Id
@GeneratedValue
private long id;
@NotEmpty
@NonNull
@Size(min=3, max=100)
private String email;
@NotEmpty
@NonNull
@Size(min=3, max=50)
private String username;
@NotEmpty
@NonNull
@Size(min=3, max=50)
private String password;
@NotNull
@NonNull
private boolean isAccountNonExpired = true;
@NotNull
@NonNull
private boolean isAccountNonLocked = true;
@NotNull
@NonNull
private boolean isCredentialsNonExpired = true;
@NotNull
@NonNull
private boolean isEnabled = true;
@ManyToMany
private Set<Role> roles = new HashSet<Role>();
public void addRole(Role r) {
roles.add(r);
}
public User() {}
public Collection<? extends GrantedAuthority> getAuthorities() {
List<SimpleGrantedAuthority> authorities = new ArrayList<>();
for(Role role : roles) {
authorities.add(new SimpleGrantedAuthority(role.getName()));
}
return authorities;
}
我为/users
创建了一个控制器,但没有为/roles
创建一个控制器
但是,在端点http://localhost:8080/users/2/roles
下,我得到了一个指向
role: {
href: "http://localhost:8080/roles/1"
},
/roles/1
产生的地方
{
name: "ROLE_USER",
_links: {
self: {
href: "http://localhost:8080/roles/1"
},
role: {
href: "http://localhost:8080/roles/1"
},
users: {
href: "http://localhost:8080/roles/1/users"
}
}
}
因此,至少在某种程度上,Springboot会自动生成一些路径。
有人可以为此提供一些背景吗?
答案 0 :(得分:2)
您正在使用一些依赖关系,它将为您生成依赖关系。我猜可能是spring-data-rest。如果不希望这样,请删除该依赖项,使用spring-boot-starter-web
依赖项,然后只有您创建的端点可用。