春季发布并找不到
Posted
技术标签:
【中文标题】春季发布并找不到【英文标题】:Spring post and get not found 【发布时间】:2019-06-20 19:00:58 【问题描述】:我尝试创建我的第一个 Spring 后端,用于存储音乐专辑的简单应用程序。不幸的是,我创建的端点都没有工作(我使用邮递员对其进行了测试,请求返回 404,未找到)。 以下是我所有与项目相关的文件/代码:
@Repostiory
public interface AlbumRepository extends Repository<Album,Long>
@Query(value = "SELECT * FROM album", nativeQuery = true)
List<Album> findAlbums();
Album save(Album persisted);
@Service
public class AlbumService
@Autowired
private AlbumRepository albumRepository;
public void saveData(Album album)
this.albumRepository.save(album);
public List<Album> getAllAlbums()
return this.albumRepository.findAlbums();
@PostConstruct
private void init()
@Entity
@Table(name="album")
public class Album
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name="title")
private String title;
@RestController
public class AlbumController
@Autowired
AlbumService albumService;
@RequestMapping(method=RequestMethod.POST, path="/album/post")
public ResponseEntity<String> addAlbum(@RequestBody Album album)
albumService.saveData(album);
return new ResponseEntity<String>(HttpStatus.OK);
@RequestMapping(method=RequestMethod.GET, path="/album/get")
Iterable<Album> getAlbums()
return albumService.getAllAlbums();
@SpringBootApplication
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class)
public class MusesiteBackEndApplication
public static void main(String[] args)
SpringApplication.run(MusesiteBackEndApplication.class, args);
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource()
return DataSourceBuilder.create().build();
我尝试了什么:
在包中添加@ComponentScan:
@ComponentScan("com.musesite.dao", "com.musesite.model", "com.musesite.musesitebackend", "com.musesite.restful")
结果:Field albumRepository in com.musesite.dao.AlbumService required a bean of type 'com.musesite.dao.AlbumRepository' that could not be found.
添加应创建数据库的 dataSource 方法。
@豆 @ConfigurationProperties(前缀=“spring.datasource”) 公共数据源数据源() 返回 DataSourceBuilder.create().build();
结果:无。
在SpringBootApplication
中添加scanBasePackages
:
@SpringBootApplication(scanBasePackages= “com.musesite.dao”、“com.musesite.model”、“com.musesite.musesitebackend”、“com.musesite.restful”)
结果:Field albumRepository in com.musesite.dao.AlbumService required a bean of type 'com.musesite.dao.AlbumRepository' that could not be found.
不幸的是,他们都没有帮助。
【问题讨论】:
【参考方案1】:试试这个方法:
public interface AlbumRepository extends JpaRepository<Album,Long>
您无需创建本机查询。 您可以使用 findAll() 和 save(album) 而无需任何额外的代码。 (它们是自动生成的)
---编辑
哎呀!还将以下注释添加到您的配置类之一:
@EnableJpaRepositories
【讨论】:
试过了,没有结果。 也添加@ComponentScan
应用程序不使用此注释运行。错误说:Field albumRepository in com.musesite.dao.AlbumService required a bean of type 'com.musesite.dao.AlbumRepository' that could not be found.
我在public class MusesiteBackEndApplication
上方使用了@ComponentScan("com.musesite.dao", "com.musesite.model", "com.musesite.musesitebackend", "com.musesite.restful")
。
AlbumRepository 扩展了 JpaRepository以上是关于春季发布并找不到的主要内容,如果未能解决你的问题,请参考以下文章
无法验证提供的CSRF令牌,因为找不到您的会话。 拒绝访问 *