gpt4 book ai didi

java - Spring 发布并找不到

转载 作者:行者123 更新时间:2023-12-01 06:02:28 25 4
gpt4 key购买 nike

我尝试创建我的第一个 Spring 后端,一个存储音乐专辑的简单应用程序。不幸的是,我创建的端点都不起作用(我使用 postman 测试了它们,请求返回 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();
}

}

我尝试过的:

  1. 使用包添加@ComponentScan:

    @ComponentScan({"com.musesite.dao", "com.musesite.model", "com.musesite.musesitebackend", "com.musesite.restful"})

结果:com.musesite.dao.AlbumService 中的字段 albumRepository 需要类型为“com.musesite.dao.AlbumRepository”的 bean,但无法找到。

  • 添加应创建数据库的 dataSource 方法。

    @ bean @ConfigurationProperties(前缀=“spring.datasource”) 公共(public)数据源 dataSource() { 返回 DataSourceBuilder.create().build(); }

  • 结果:无。

  • SpringBootApplication中添加scanBasePackages:

    @SpringBootApplication(scanBasePackages={ “com.musesite.dao”、“com.musesite.model”、“com.musesite.musesitebackend”、“com.musesite.restful”})

  • 结果:com.musesite.dao.AlbumService 中的字段 albumRepository 需要类型为“com.musesite.dao.AlbumRepository”的 bean,但无法找到。

    不幸的是,它们都没有帮助。

    最佳答案

    试试这个方法:

    public interface AlbumRepository extends JpaRepository<Album,Long> {

    }

    您不需要创建 native 查询。您可以使用 findAll() 和 save(album) ,无需任何其他代码。 (它们是自动生成的)

    ---编辑

    哎呀!还将以下注释添加到您的配置类之一:

    @EnableJpaRepositories

    关于java - Spring 发布并找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54390755/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com