gpt4 book ai didi

java - Spring中具有多种角色的组件

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

@Role 注释让我们为组件定义一个附加的命名角色,具有不同的作用域——它让我们将相同的组件类绑定(bind)到不同的上下文变量。 (任何 Seam 组件实例都可以绑定(bind)到多个上下文变量,但这让我们可以在类级别上进行操作,并利用自动实例化的优势。)

@Name("user")
@Entity
@Scope(CONVERSATION)
@Roles({@Role(name="currentUser", scope=SESSION),
@Role(name="tempUser", scope=EVENT)})
public class User {

...

}

Spring 呢?

最佳答案

在 Spring 中没有现成的方法可以做到这一点。

您可以使用 XML 或 JavaConfig 在多个作用域中连接相同的 bean 类型,但不能从 bean 类内部连接。并且:我也不认为有必要这样做。如果您在不同的范围内使用相同的 bean 类,您可能会遇到架构问题。

一种可能的解决方案:

定义一个包含数据的抽象类和两个包含 Spring 注释的子类,每个范围一个:

public abstract class User{
// fields, getters , setters
}

@Component @Scope("session")
public class SessionUser extends User{}

@Component @Scope("request")
public class TempUser extends User{}

关于java - Spring中具有多种角色的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259071/

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