【问题标题】:Need help for approach to be used for implementation需要用于实施的方法的帮助
【发布时间】:2019-04-15 00:16:39
【问题描述】:

我是弹簧靴的新手。我有关于如何在 Spring Boot 中开发场景的问题。

我有一堂课(比如SingleObject),里面有一些字段。我想从SingleObject(比如JsonObject)创建另一个对象,该对象具有一些Json 结构,该结构派生自SingleObject 中的字段值。

对于这个转换,我使用一个类的静态方法(比如Converter); where 方法接受SingleObject 的输入并返回JsonObject 的对象。

我应该如何在春季实现这个场景?

我应该为Converter 类使用@Configuration 注释,并为返回JsonObject 的方法使用@Bean 注释吗?

如果我必须使用 @Configuration 注释,我应该如何在我的主要方法中收集该 bean 以进行进一步处理?

【问题讨论】:

  • 虽然方法是静态的,但您不会是对象,因此无需注释。如果它不是静态的,您可以创建只使用@Component 注释的bean,或者您可以使用@Configuration@Bean 注释并在类中定义bean
  • 感谢阿米达拉的回复。如果我不使用静态,你能解释一下我应该如何使用 spring boot 配置注释吗?

标签: java spring-boot


【解决方案1】:

@Configuration 应该没问题。如果您将 SingleObject 指定为依赖项(即参数),JsonObject bean 将自动装配。

@Configuration
public class MyConfig {
    @Bean
    public SingleObject single() { return new SingleObject(); }

    @Bean
    public JsonObject json(SingleObject single) {
        return Converter.convert(single);
    }
}

您可能不应该从您的 main 方法访问这些 bean,因为您的 main 方法必须是静态的,并且需要一些技巧才能这样做:Accessing spring beans in static method

【讨论】:

  • 如果我以 SingleObject 的形式从 DB 中获取 10 个对象并将其作为 List 传递给 convert 方法并获取 List 那么使用 @Bean 注释是否合适?
  • @YogeshGavali 不是。 List 通常不应该是 bean。您可能想要一些更高级别的课程,例如class SomeService { private List<SingleObject> objects; public List<JsonObject> getJson() {... } }。该服务是一个 bean,负责获取和存储数据以及对其进行转换。
  • 你将如何连接SingleObject 的不同对象?
猜你喜欢
  • 1970-01-01
  • 2023-04-01
  • 2016-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多