Java Spring@Repository@文档不是必需的吗?

Java Spring@Repository@文档不是必需的吗?,java,spring,spring-boot,spring-data-mongodb,spring-annotations,Java,Spring,Spring Boot,Spring Data Mongodb,Spring Annotations,我有一个spring启动应用程序,并连接到Mongo DB。 我知道大多数文档或博客都说示例代码应该是这样的: @Repository public interface ProductRepository extends MongoRepository<Product, String> { } @Document public class Product { private String id; private String name; private i

我有一个spring启动应用程序,并连接到Mongo DB。 我知道大多数文档或博客都说示例代码应该是这样的:

@Repository
public interface ProductRepository extends MongoRepository<Product, String> {

}

@Document
public class Product {
    private String id;
    private String name;
    private int price;
}
@存储库
公共接口ProductRepository扩展了MongoRepository{
}
@文件
公共类产品{
私有字符串id;
私有字符串名称;
私人int价格;
}
但我发现即使我删除了@Repository和@Document注释。应用程序仍然可以正常启动。Spring仍然可以知道ProductRepository是Springbean,还可以知道CRUD
Product
collection

那么,添加@Repository和@Document不需要这些吗?或者添加或不添加有什么区别吗?

无需添加

Spring可以找到它,因为您扩展了
MongoRepository
接口,并在其类型中添加了
Product

@Repository
无论如何都是有用的,例如,如果您创建一个自定义存储库


@Document
也是,如果您想指定自定义属性值,例如集合名..

注释
@Repository
将类注册为Springbean,使其可自动编译。Spring数据不使用注释,而是通过扩展repostory类提供功能,如
JpaRepository
MongoRepository