当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot应用程序中无法识别@Repository

林礼骞
2023-03-14

尝试运行Spring Boot应用程序时,我收到以下错误。

***************************应用程序启动失败

描述:

com中的字段存储库。Java新手。积垢。实例服务ProductService需要“com”类型的bean。Java新手。积垢。实例存储库。找不到ProductRepository“”。

注入点具有以下注释:

  • @组织。springframework。豆。工厂注释。自动连线(必需=真)

措施:

考虑定义“com”类型的bean。Java新手。积垢。实例存储库。配置中的ProductRepository。

ProductRepository。Java语言

package com.javanovice.crud.example.repository;

import com.javanovice.crud.example.entity.Product;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductRepository extends JpaRepository<Product,Integer> {
    Product findByName(String name);
}

产品ervice.java

package com.javanovice.crud.example.service;

import com.javanovice.crud.example.entity.Product;
import com.javanovice.crud.example.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ProductService {
    @Autowired
    private ProductRepository repository;

    public Product saveProduct(Product product) {
        return repository.save(product);
    }

    public List<Product> saveProducts(List<Product> products) {
        return repository.saveAll(products);
    }

    public List<Product> getProducts() {
        return repository.findAll();
    }

    public Product getProductById(int id) {
        return repository.findById(id).orElse(null);
    }

    public Product getProductByName(String name) {
        return repository.findByName(name);
    }

    public String deleteProduct(int id) {
        repository.deleteById(id);
        return "product removed !! " + id;
    }

    public Product updateProduct(Product product) {
        Product existingProduct = repository.findById(product.getId()).orElse(null);
        existingProduct.setName(product.getName());
        existingProduct.setQuantity(product.getQuantity());
        existingProduct.setPrice(product.getPrice());
        return repository.save(existingProduct);
    }


}

ProductController。Java语言

package com.javanovice.crud.example.controller;

import com.javanovice.crud.example.entity.Product;
import com.javanovice.crud.example.service.ProductService;
import org.springframework.html" target="_blank">beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class ProductController {

    @Autowired
    private ProductService service;

    @PostMapping("/addProduct")
    public Product addProduct(@RequestBody Product product) {
        return service.saveProduct(product);
    }

    @PostMapping("/addProducts")
    public List<Product> addProducts(@RequestBody List<Product> products) {
        return service.saveProducts(products);
    }

    @GetMapping("/products")
    public List<Product> findAllProducts() {
        return service.getProducts();
    }

    @GetMapping("/productById/{id}")
    public Product findProductById(@PathVariable int id) {
        return service.getProductById(id);
    }

    @GetMapping("/product/{name}")
    public Product findProductByName(@PathVariable String name) {
        return service.getProductByName(name);
    }

    @PutMapping("/update")
    public Product updateProduct(@RequestBody Product product) {
        return service.updateProduct(product);
    }

    @DeleteMapping("/delete/{id}")
    public String deleteProduct(@PathVariable int id) {
        return service.deleteProduct(id);
    }
}

SpringBootCrudExampleApplication。Java语言

package com.javanovice.crud.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class SpringBootCrudExampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootCrudExampleApplication.class, args);
    }

}

共有1个答案

万勇
2023-03-14

您需要删除排除={DataSourceAutoConfiguration.class},如下所示:

java prettyprint-override">@SpringBootApplication
public class SpringBootCrudExampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootCrudExampleApplication.class, args);
    }
}

否则,自动配置将不会启动与持久性相关的bean,包括Repositories

 类似资料:
  • 字符串不能解析为类型

  • 我花了相当长的时间,但我无法通过这个(配置)问题。 技术栈:Java(1.8)、Springboot(starter-parent、starter-web)、Maven、IntelliJ IDEA 描述:尝试创建一个多模块Java应用程序,由2个模块组成(最初): null 问题:Springboot在发送http请求时没有从webgateway模块=>404错误加载/扫描RestControll

  • 我正在尝试在STS中创建一个默认的Spring Boot应用程序。它在STS文件中创建了一个“Spring starter Project”-->。创建项目后未进行任何更改。错误立即显示在POM文件中...

  • 我有一个与cassandra连接的springboot应用程序。我试图在地图中创建地图,但遇到以下异常。在我看来,即使我使用了冻结值,它仍在发送cal,但没有关键字冻结 错误 代码 马文

  • 我无法使用Appium inspector识别元素。当我点击任何对象时,整个框架被选中。我无法唯一地识别每个元素。 我使用的是Appium 1.17.1-1设备:iPhone 6S iOS版本:12.2

  • 我正在使用Spring引导应用程序连接MongoDB实例。我们已在MongoDB上启用了以下角色的身份验证 角色:[ { role: "dbOwner ",db: "{{ mongo.database_name }}" } 角色:[ { role: "readWrite ",db: "{{ mongo.database_name }}" } 我们使用conf文件提供凭证 数据: mongodb。u