`

spring annotation 不是单例的写法

 
阅读更多

在多用户管理中想把每个用户的信息都保存在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简介一

    【Spring Annotation简介一】 在Java开发领域,Spring框架以其强大的功能和灵活性深受广大开发者喜爱。Spring Annotation是Spring框架中的一个重要特性,它极大地简化了配置,提高了代码的可读性和可维护性。这篇...

    Spring annotation

    - `@Scope`: 指定bean的作用域,如单例(`prototype`)、多例(`singleton`)等。 - `@Lazy`: 标记bean为懒加载,只有在真正使用到时才会初始化。 - `@Value`: 注入基本类型的值或SpEL表达式。 - `@...

    spring annotation注解

    Spring Annotation 注解 Spring 框架中的注解是用于在 Java 类中添加元数据的,通过这些元数据,Spring 框架可以在运行时提供更多的功能。 Spring 框架提供了多种类型的注解,例如 @Autowired、@Resource、@...

    spring的Annotation注解.

    ### Spring框架中的Annotation注解详解 #### 一、Spring与Annotation的基本概念 Spring框架通过引入Annotation,极大地简化了Java开发中的依赖注入(Dependency Injection, DI)和面向切面编程(AOP)的过程。...

    spring 的Annotation方式

    ### Spring的Annotation方式详解 #### 引言 随着Spring框架的发展,其依赖注入(DI)机制也经历了从XML配置向注解驱动的重大转变。自Spring 3.0版本起,框架引入了一系列注解来简化依赖配置,使得开发人员能够在不...

    Spring的Annotation配置相关讲义

    在Spring框架中,Annotation配置是一种简洁且强大的方式来管理Bean的定义和依赖注入,它消除了传统的XML配置文件,使得代码更加简洁、易读。在Spring 3.0及以上版本中,Annotation配置得到了广泛的应用。 首先,...

    SpringIOC_SpringMVC_SpringAnnotation_JPA

    标题 "SpringIOC_SpringMVC_SpringAnnotation_JPA" 涵盖了四个核心的Java开发框架技术,它们是Spring框架的重要组成部分。Spring框架是一个开源的应用框架,它为Java开发者提供了一个全面的基础设施,用于构建可扩展...

    Spring注释 注入方式源码示例,Annotation

    花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...

    利用 spring annotation AOP 反射 记录日志

    在IT行业中,Spring框架是Java开发中的核心工具之一,它为开发者提供了许多强大的功能,包括依赖注入、面向切面编程(AOP)等。本文将深入探讨如何利用Spring的注解式AOP和反射机制来实现日志记录,以便更好地理解和...

    Spring_Annotation_AOP

    在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...

    Spring MVC Annotation验证的方法

    Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...

    springAnnotation.zip

    5. `@Scope`:定义bean的作用范围,如`singleton`(单例)和`prototype`(原型)。 6. `@PostConstruct` 和 `@PreDestroy`:分别表示在bean初始化后和销毁前执行的方法。 7. `@RequestMapping`(Spring MVC部分)...

    SpringMVC Spring MyBatis 框架整合 Annotation Maven Project

    在IT行业中,SpringMVC、Spring和MyBatis是三个非常重要的Java开发框架,它们各自在Web应用的各个层面上发挥着关键作用。本项目是一个整合了这三个框架的基于Annotation和Maven的项目,旨在提供一种高效、灵活的开发...

    Spring+mybatis annotation形式

    在Java Web开发中,Spring和MyBatis是两个非常重要的框架。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能;而MyBatis则是一个轻量级的持久层框架,它将SQL与Java代码分离,...

    Spring IOC Annotation 注入 学习实例

    Annotation注入是Spring IOC的一种实现方式,它利用Java注解替代XML配置来管理Bean的依赖关系,使得代码更加简洁、可读性更强。 在Spring框架中,我们主要关注以下几个关键的注解: 1. `@Component`:这是一个基础...

    Spring Annotation (注解)详解

    综上所述,Spring注解大大简化了Spring应用的配置和管理,使得开发人员能够更加专注于业务逻辑,而不是繁琐的配置工作。随着Spring框架的不断演进,注解配置已成为现代Java企业级应用开发的标准实践。

Global site tag (gtag.js) - Google Analytics