Spring mvc - @sessionattributes vs @Scope(“session”)bean可以使用哪些?

时间:2016-01-11 21:47:44

标签: spring spring-mvc session

我不完全了解何时使用@SessionAttributes vs @Scope("session") bean。

目前,我正在做以下

@ControllerAdvice(assignableTypes = {DashboardController.class, FindingWholeSalersController.class})
public class AuthControllerAdvice {

private IFindWholeSalerService service;

    public IFindWholeSalerService getService() {
        return service;
    }

    @Autowired
    public void setService(IFindWholeSalerService service) {
        this.service = service;
    }

    //put firstname in session etc..
    @ModelAttribute
    public void addWholesalerDiscoveryCountToSession(Model model, Principal principal){
        if (!model.containsAttribute("firstname")) {
            String firstname = service
                    .findUserFirstName(principal.getName());
            model.addAttribute("firstname",
                    firstname);
        }
    }

如果测试if (!model.containsAttribute("firstname")),请注意这一点 基本上,如果会话属性已经在模型中,那么我不想让我的服务层发出数据库请求。但是,我建议的任何控制器中的每次@RequestMapping呼叫都会先打电话给

@ModelAttribute
public void addWholesalerDiscoveryCountToSession(Model model, Principal principal)

是否测试,并按其结婚方式移动。

这是将数据保存在会话中的正确解决方案,这样您就不必调用数据库,或者@Scope("session") bean是更好的选择还是别的?

提前感谢所有建议!

0 个答案:

没有答案