Java Spring Data@EnabledParepositories问题
我使用SpringData和Hibernate作为JPA提供程序,并且有一个类,这是一个独立的应用程序,我在这个项目中没有使用BootJava Spring Data@EnabledParepositories问题,java,spring,spring-data-jpa,Java,Spring,Spring Data Jpa,我使用SpringData和Hibernate作为JPA提供程序,并且有一个类,这是一个独立的应用程序,我在这个项目中没有使用Boot @Configuration @ComponentScan(basePackages={basePackages}) @EnableJpaRepositories(basePackageClasses = {com.company.dao.UserDao.class}) public class Company{ 我正在使用这样的UserDao @Reposi
@Configuration
@ComponentScan(basePackages={basePackages})
@EnableJpaRepositories(basePackageClasses = {com.company.dao.UserDao.class})
public class Company{
我正在使用这样的UserDao
@Repository
public interface UserDao extends GenericDao<User>{
@Query("query")
public int findByLoginAndPass(@Param("login") String login,@Param("password") String password);
}
public interface GenericDao<T extends AbstractEntity> extends CrudRepository<T,Integer>{
}
在我的配置中,我将genericDao视为Spring管理的bean,因此有两个问题:
1) 。为什么GenericDao在我的上下文中是托管bean?扩展crudepository但是crudepository是@NoRepositoryBean吗?如果我不扩展接口crudepository,我的类就不再是bean了
2) 。为什么我可以在我的应用程序中存储车辆,即使我在@enabledparepositories中除了UserDao之外没有任何声明
UserDao--->com.company.dao.UserDao
GenericDao-->com.company.dao.abstraction.GenericDao
如果我说
@EnableJpaRepositories(basePackageClasses = {com.company.dao.UserDao.class})
它会在哪里搜索
这是我第一次从头开始使用Spring数据
basePackageClasses={com.company.dao.UserDao.class}
basePackageClasses={com.company.dao.UserDao.class}
但是包裹是这样的。UserDao-->com.compay.dao,GenericDao是com.company.dao.abstraction,我告诉spring只扫描UserDao.class?因为如果我像这样告诉spring@EnableJpaRepositories(“com.company.dao”),我会理解的,我说它会在包和子包中搜索,但当我说.class时,它会在哪里搜索?不,你没有。阅读basePackageClasses的javadoc。它解释了它的作用(这就是我在回答中所说的)。包裹是这样的。UserDao-->com.compay.dao,GenericDao是com.company.dao.abstraction,我告诉spring只扫描UserDao.class?因为如果我像这样告诉spring@EnableJpaRepositories(“com.company.dao”),我会理解的,我说它会在包和子包中搜索,但当我说.class时,它会在哪里搜索?不,你没有。阅读basePackageClasses的javadoc。它解释了它的作用(这就是我在回答中所说的)。
@EnableJpaRepositories(basePackageClasses = {com.company.dao.UserDao.class})
@EnableJpaRepositories(basePackageClasses = {com.company.dao.UserDao.class})