我有一个非常简单的Springboot JPA项目,由一个主类、一个仓库和一个实体组成。首先,我遇到了一个问题,Springboot在启动时抛出了一个错误,但这个问题已经解决了。现在,我面临着无法在我的主类中检索仓库Bean的问题。
它抛出 “没有可用的”com.d043114.minimalJPA.CityRepository“类型的合格Bean”
存储库如下所示
package com.d043114.minimalJPA;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CityRepository extends CrudRepository<City, Long> {
}
实体是这样的:
package com.d043114.minimalJPA;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "cities")
public class City {
@Id
@GeneratedValue(strategy = GenerationType.AUTO )
private long ID;
public long getID() {
return ID;
}
public void setID(long iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
}
主类也是基本的
package com.d043114.minimalJPA;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import com.d043114.minimalJPA.CityRepository;
@EnableJpaRepositories("com.d043114.minimalJPA.*")
@ComponentScan(basePackages = "com.d043114.minimalJPA.*")
@SpringBootApplication
@EntityScan("com.d043114.minimlaJPA")
public class MinimalJpaApplication {
public static void main(String[] args) {
ConfigurableApplicationContext appcontext = SpringApplication.run(MinimalJpaApplication.class, args);
CityRepository cityRepository = appcontext.getBean(CityRepository.class );
}
}
1条答案
按热度按时间c3frrgcw1#
问题出在这一行
我把它换成了
并删除了这一行
它正在工作。
此外,如果删除所有这些线,那么它也是工作。
因此,最终代码为CityRepository.java
City.java
主类MinimalJpaApplication.java
如果您展开@SpringBootApplication,您将看到它已经处理了所有这些事情。
关于@EntityScan和@ComponentScan,请参见以下链接https://www.baeldung.com/spring-entityscan-vs-componentscan
“我们应该知道,使用@EntityScan将禁用对实体的Sping Boot 自动配置扫描。”
添加pom.xml