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

Spring boot-beans配置无需@component注释

伏星汉
2023-03-14

作为我大学项目的一部分,我被要求实现一个简单的spring-boot应用程序(仅限于后端),它可以通过HTTP请求与Postman通信。

    null

我得到:

ServletException:循环视图路径[post]:将再次分派回当前处理程序URL[/post]。检查您的视图解析器设置!

我试图探索这个异常,并通过添加这个maven依赖项设法“解决”了它:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    <version>2.5.2</version>
</dependency>
"org.thymeleaf.exceptions.TemplateInputException: Error resolving template [post], template might not exist or might not be accessible by any of the configured Template Resolvers"
@Configuration
@EnableJpaRepositories(basePackages = {
        "com.example.microblog.post.domain.repository"
})
public class ApplicationBeans {

    @Bean
    public PostController postController(PostService postService){
        return new PostController(postService);
    }

    @Bean
    public PostService postService(){
        return new PostService();

    }

}
@AllArgsConstructor
@RequestMapping(path = "post")
public class PostController {

    @Autowired
    private PostService service;

    @CrossOrigin(origins = "http://localhost:4200")
    @PostMapping("")
    public PostEntity create(@RequestBody PostDto dto) {
        return service.create(dto);
    }

    @GetMapping("/all")
    @CrossOrigin(origins = "http://localhost:4200")
    public List<PostEntity> getAll() {
        return service.getAll();
    }

}
@Transactional
public class PostService {

    @Autowired
    private PostRepository PostRepository;


    public PostEntity create(PostDto dto){
        PostEntity newPost = new PostEntity(dto.getContent());
        return PostRepository.save(newPost);
    }

    public List<PostEntity> getAll(){
        return PostRepository.findAll();
    }

存储库类:

public interface PostRepository extends JpaRepository<PostEntity,Long> {}

共有1个答案

洪鹏海
2023-03-14

对于第二种方法,在创建Bean时,尽量不要在为其创建Bean的类上使用@component/@controller...

@Configuration
public class AppConfig {
    @Bean
    public TransferService transferService() {
        return new TransferServiceImpl();
    }
}

您可以像第三种方法一样继续对它们进行自动处理,尽量不要保留同名的bean

 类似资料:
  • 我有一个springboot starter模块,它正在读取一个配置文件,并使用它来尝试构建一个任意类型的新bean,并将它们添加到bean工厂中。 当我试图访问spring boot应用程序(在一个控制器bean中)中的“SomeObject”类型的bean时,它使用了包含上述配置bean的starter模块,但没有自动连接。 我可以看到,它稍后在启动过程中初始化这些bean,但没有及时让aut

  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • 相关的: null 通过spring配置来配置bean的数量; 通过获取此配置; 从自动配置模块根据所述配置创建并注入@beans; 能够在应用程序中创建bean。 示例:使通过spring配置声明基于咖啡因的的数量成为可能。以下是基于类似问题的公认答案的实现: 首先,引导自动配置模块:

  • 带Springdoc的Spring Boot 2.6.3。 在,当我将路径设置为/v3/api docs或将其删除时,这意味着使用默认路径“/v3/api docs”。Swagger UI页面与API一起正确显示http://localhost:8080/swagger-用户界面/索引。html 但我想覆盖下面的路径 然后SwaggerUI显示"加载远程配置失败"错误:

  • 我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/

  • 我尝试将springboot应用程序配置为每天登录一个文件,因此我将logback.xml配置为: 所以当我尝试运行我的应用程序时,我得到了这个错误: