gpt4 book ai didi

Java Spring 风格 : factory for a category of processor for a given class

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:31 27 4
gpt4 key购买 nike

我有一个关于 Spring 样式的小问题。

给定一组 Java 类:

A 类、B 类、C 类和 D 类。

这些类来自另一个系统,无法更改。

这些类必须由不同的处理器处理。一些类由公共(public)处理器处理。

所以我的问题是什么是将类映射到它们的处理器的最佳 spring 方法。目前我有一个工厂 bean 做这样的事情:

package org.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.stereotype.Component;

@Component
public class processorFactory
{

private static List<Object> proc1List = new ArrayList<Object>(Arrays.asList(
classA.class, classB.class));

private static List<Object> proc2List = new ArrayList<Object>(
Arrays.asList(classC.class));

private static List<Object> proc3List = new ArrayList<Object>(
Arrays.asList(classD.class));

public static processor getProcessor(Object object)
{

if (proc1List.contains(object))
return new processor1();
else if (proc2List.contains(object))
return new processor2();
else if (proc3List.contains(object))
return new processor3();

throw new RuntimeException("no processor.");
}
}

大部分代码对于spring都是多余的。我确信有多种方法可以做到这一点,但我的问题是在 spring 中使用注释实现这一点的最佳方法是什么。

最佳答案

如果您使用的是 Spring Java Config,那么您可以直接转换上面的代码。也就是说,您的“工厂”代码将成为用于创建处理器的@Bean 代码(它应该有一个大写的“P”:)

关于Java Spring 风格 : factory for a category of processor for a given class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298649/

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