我是Boot-Spring的新手,显然,在这个案例中,我主要是从youtube上复制一些代码。然而,在修改之后,我最终得到了这样的消息:应用程序无法启动
描述:
com.example.demo.BlogController中的字段postService需要找不到的'Server.PostService‘类型的bean。
操作:
考虑在您的配置中定义一个'Server.PostService‘类型的bean。
.....Any的想法是如何处理这种情况。感谢您的支持。1stclass-BlogApplciation-----com.example.demo(package)第二个博客控制器-与BlogApplication相同的包3rdclass-帖子-实体4rthclass-帖子存储库-存储库
**package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BlogApplication {
public static void main(String[] args) {
SpringApplication.run(BlogApplication.class, args);
}
}**
**package com.example.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import Server.PostService;
import entities.Post;
import java.util.Date;
@RestController
public class BlogController {
@Autowired
private PostService postService;
@GetMapping(value="/")
public String index() {
return "index";
}
@GetMapping(value="/posts")
public List<Post>posts(){
return postService.getAllPosts();
}
@PostMapping(value="/post")
public void publishPost(@RequestBody Post post) {
if(post.getDatecreation() == null)
post.setDatecreation(new Date());
postService.insert(post);
}
}**
**package entities;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Post {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String title;
private String body;
private Date Datecreation;
public Post() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String gettitle() {
return title;
}
public void settitle(String title) {
this.title= title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public Date getDatecreation() {
return Datecreation;
}
public void setDatecreation(Date datecreation) {
this.Datecreation = datecreation;
}
}**
**package Repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import entities.Post;
@Repository
public interface PostRepository extends JpaRepository<Post,Long>{
}**
发布于 2018-09-24 02:54:02
您的BlogApplication
类是用@SpringBootApplication
注释的类,它在com.example.demo
包中。这意味着,默认情况下,Spring将从该包开始启动组件扫描。
问题是您的类PostService
和接口PostRepository
不在与com.example.demo
相同的包中(或不在Spring的子包中),因此Spring找不到它们,也不会自动为您创建这些bean。
要纠正此问题,请将您创建的包移动到根包(com.example.demo
)中。
您可以找到有关使用@SpringBootApplication
here的更多信息。
发布于 2018-09-24 00:54:39
编辑:
您缺少PostService类,或者您作为Server.PostService导入了不正确的类。
尝试创建一个类似这样的服务:
@Component
public class PostService {
public List<Post> getAllPosts(){
//your code
}
}
https://stackoverflow.com/questions/52468261
复制相似问题