gpt4 book ai didi

Spring:了解 @SessionAttributes 与 @Scope ('session' 之间的区别)

转载 作者:行者123 更新时间:2023-12-01 03:48:23 24 4
gpt4 key购买 nike

情况1:

@Scope(‘Session’)
public class Employee{
//..
}

@Controller
public class EmployeeController {

@Autowired
private Employee employee;
//..
}
}

案例2:
@Controller
@SessionAttributes("employee")
public class EmployeeController {

@ModelAttribute
public void addEmployee(){
//..
}
}

Case1和Case 2一样吗?

最佳答案

这两种方法都创建了一个 session 属性。

使用时 @Scope(‘Session’) spring 确定名称,bean 不会自动填充任何 Controller 的模型。它是一个可以 Autowiring 的普通 bean。但是,如果您想要在单例 bean 中 Autowiring 当前值(当前 session 中的值),则必须使用作用域代理。

使用时 @SessionAttributes(‘employee’)您声明模型属性 employee将住在 session 中。如果 Controller 的任何方法需要在提交后初始化属性,spring 将在 session 中查找该属性的版本。但它不能在另一个 bean 中 Autowiring 。

因此,虽然这两种方法显然给出了相同的结果:employee在 session 中,它们对应于不同的用例。

关于Spring:了解 @SessionAttributes 与 @Scope ('session' 之间的区别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25121576/

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