zoukankan      html  css  js  c++  java
  • 用于对象的注解-IOC相关注解

    我们将用于被扫描创建对象的注解,统称为组件注解。

    组件包括:@Component,@Controller,@Service,@Repository。

    组件注解的功能都是标识类为注解的组件类,启动Spring框架的程序时,声明将这些组件类注入到Spring容器里面。意味着,只有加了这四个注解任何一个注解的类,在程序启动的时候,Spring就通过配置文件指定的路径将该路径下的所有带组件注解的类创建对象并且放在容器里面。

    功能类似原来配置文件的<bean>标签

    问题:明明一个@Component注解就可以满足了扫描的需要,为什么要有四个呢?

    答:其实Spring第一版注解的实现(spring 2.5),就是使用一个@Component。从3.0以后,作者认为根据分层的需要,把它拆成了四个。为了可以让开发人员,可见即可得,一看到注解,立即知道类的性质。所以分成了四个

    @Controller:用于声明表示层的组件注解

    @Service:用于声明服务层的组件注解

    @Repository:用于声明持久层的组件注解

    @Component:用于声明三层以外的组件注解

    问题:那么,这四个注解交换使用会报错吗。如:持久层,我放@Service标记。

    答:处理@Controller在SpringMVC里面有强制的要求,SpringMVC的表示层必须使用@Controller组件注解。其他情况,用乱了是不会报错的,不过我们必须不能用乱。不遵守规范,不然别人无法跟你一起开发了。

     

    singleton

     单例 ,在Spring IoC容器中仅存在一个Bean实例 (默认的scope),单例下才能执行销毁方法
    prototype     多例 ,每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时 ,相当于执行new XxxBean():
    request

    用于web开发,将Bean放入request范围 ,request.setAttribute("xxx") , 在同一个request 获得同一个Bean

    session 用于web开发,将Bean 放入Session范围,在同一个Session 获得同一个Bean

     

     

  • 相关阅读:
    vue中的Data为什么必须是一个函数
    单页面应用的优缺点
    数组去重
    mvvm框架
    前端计算精确度问题处理JS
    shell 修改json配置。
    ubuntu 两个文件夹合并
    fdisk、df与du的区别
    新买移动磁盘,使用前需要什么操作?
    Springboot+MybatisPlust+ControllerAdvice ;Mybatis_Plus多数据源,controller统一异常返回
  • 原文地址:https://www.cnblogs.com/abcdjava/p/11137719.html
Copyright © 2011-2022 走看看