在多用户管理中想把每个用户的信息都保存在session中,其中保存用户信息的bean想用spring管理,则必须不是单例
@Controller
@Scope("prototype")
public class LoginController {
@Autowired
private LoginService loginService;
@Resource
private UserContext userContext;
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "login";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ModelAndView loginCheck(User user,HttpServletRequest request) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("login");
User userInfo = loginService.getUser(user);
if (null != userInfo) {
// UserContext userContext = new UserContext();
userContext.init(userInfo);
request.getSession().setAttribute("user", userContext);
if(userInfo.getId() !=1) {
modelAndView.setViewName("redirect:/matches");
}else {
modelAndView.setViewName("redirect:/home");
}
} else {
modelAndView.addObject("user",user);
modelAndView.addObject("msg", "Invalid account or password.");
}
return modelAndView;
}
-------------
@Service
@Scope("prototype")
public class UserContext {
private List<Menu> menuList = null;
private User user = null;
private ContentOwnerContext currentContentOwner;
------------、
Scope prototype means that every time you ask spring (getBean or dependency injection) for an instance it will create a new instance and give a reference to that.
注意想得到prototype的UserContextze则必须在controller也加上@Scope,否则还是单例,因为Controller还是单例。
相关推荐
【Spring Annotation简介一】 在Java开发领域,Spring框架以其强大的功能和灵活性深受广大开发者喜爱。Spring Annotation是Spring框架中的一个重要特性,它极大地简化了配置,提高了代码的可读性和可维护性。这篇...
- `@Scope`: 指定bean的作用域,如单例(`prototype`)、多例(`singleton`)等。 - `@Lazy`: 标记bean为懒加载,只有在真正使用到时才会初始化。 - `@Value`: 注入基本类型的值或SpEL表达式。 - `@...
Spring Annotation 注解 Spring 框架中的注解是用于在 Java 类中添加元数据的,通过这些元数据,Spring 框架可以在运行时提供更多的功能。 Spring 框架提供了多种类型的注解,例如 @Autowired、@Resource、@...
### Spring框架中的Annotation注解详解 #### 一、Spring与Annotation的基本概念 Spring框架通过引入Annotation,极大地简化了Java开发中的依赖注入(Dependency Injection, DI)和面向切面编程(AOP)的过程。...
### Spring的Annotation方式详解 #### 引言 随着Spring框架的发展,其依赖注入(DI)机制也经历了从XML配置向注解驱动的重大转变。自Spring 3.0版本起,框架引入了一系列注解来简化依赖配置,使得开发人员能够在不...
在Spring框架中,Annotation配置是一种简洁且强大的方式来管理Bean的定义和依赖注入,它消除了传统的XML配置文件,使得代码更加简洁、易读。在Spring 3.0及以上版本中,Annotation配置得到了广泛的应用。 首先,...
标题 "SpringIOC_SpringMVC_SpringAnnotation_JPA" 涵盖了四个核心的Java开发框架技术,它们是Spring框架的重要组成部分。Spring框架是一个开源的应用框架,它为Java开发者提供了一个全面的基础设施,用于构建可扩展...
花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...
在IT行业中,Spring框架是Java开发中的核心工具之一,它为开发者提供了许多强大的功能,包括依赖注入、面向切面编程(AOP)等。本文将深入探讨如何利用Spring的注解式AOP和反射机制来实现日志记录,以便更好地理解和...
在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...
Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...
5. `@Scope`:定义bean的作用范围,如`singleton`(单例)和`prototype`(原型)。 6. `@PostConstruct` 和 `@PreDestroy`:分别表示在bean初始化后和销毁前执行的方法。 7. `@RequestMapping`(Spring MVC部分)...
在IT行业中,SpringMVC、Spring和MyBatis是三个非常重要的Java开发框架,它们各自在Web应用的各个层面上发挥着关键作用。本项目是一个整合了这三个框架的基于Annotation和Maven的项目,旨在提供一种高效、灵活的开发...
在Java Web开发中,Spring和MyBatis是两个非常重要的框架。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能;而MyBatis则是一个轻量级的持久层框架,它将SQL与Java代码分离,...
Annotation注入是Spring IOC的一种实现方式,它利用Java注解替代XML配置来管理Bean的依赖关系,使得代码更加简洁、可读性更强。 在Spring框架中,我们主要关注以下几个关键的注解: 1. `@Component`:这是一个基础...
综上所述,Spring注解大大简化了Spring应用的配置和管理,使得开发人员能够更加专注于业务逻辑,而不是繁琐的配置工作。随着Spring框架的不断演进,注解配置已成为现代Java企业级应用开发的标准实践。