gpt4 book ai didi

java - 避免 Java EE 中的重复参数

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:52 24 4
gpt4 key购买 nike

TL;DR 问题在于避免方法签名中的重复参数而不降低性能。

public void foo(Context context, Config config, Request request);
void helper(Context context, Request request);
void otherHelper(Context context, Config config, Request request);

我需要这样的签名:

public void foo(Request request);
void helper(Request request);
void ohterHelper(Request request);

配置不会经常改变,一些参数将在请求范围内。缓存可能具有更广泛的 session 范围等。

我想将这个想法应用到Java Enterprise环境中。

它应该是一个带有注入(inject)字段config的bean,调用其他beanfg(也带有字段config)并连接结果,如示例所示。它应该扩展到更多字段,例如 config(例如 contextcache),但实际方法签名中只允许来自客户端的请求数据(在本示例中没有简洁的内容)。

应管理所有config字段的生命周期,以便所有bean在某些外部管理范围(例如对facade的请求)期间看到相同的config值。

可能存在解决此问题的 EE 模式。

我明确不寻找使用 ThreadLocal 的解决方案,因为我希望能够并行运行任务(如果可能的话)。我也不是在寻找 AOP 和作用域 bean(GC 的持续分配和工作,我之前在类似情况下做过分析)。

我觉得该解决方案今天可能是“失落的艺术”,并且可能与 session bean 池的正确容器管理(通过依赖注入(inject))一样简单。诀窍是容器知道如何管理 f 中的 gh 的生命周期,同时在范围更改(例如新请求、新对话)时注入(inject)(或变异)所有字段。

最佳答案

假设通过某种方式获取配置和上下文,将当前方法设置为私有(private)并创建一个公共(public)便利函数:

public void foo(Request request) {
Context context = getContext();
Config config = getConfig();
foo(context, config, request);
}

关于java - 避免 Java EE 中的重复参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33380120/

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