zoukankan      html  css  js  c++  java
  • Spring-IOC注解

    注解主要的目的就是实现零XML配置。
    一:自动扫描装配Bean。
    spring为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component、@Service、@Controller、@Repository注解的类,并把这些类纳入进spring容器中管理。它的作用和在xml文件中使用bean节点配置组件是一样的。
    1)@Component 将java类标记成一个Spring Bean组件。

    2)@Service  将业务层实现类标记成一个Spring Bean组件。

    3)@Controller  将表现层类标记成一个Spring Bean组件。

    4)@Repository 将一个持久层实现类标记成一个Spring Bean组件。

    均拥有value属性,可以取名字;如果没有取名字,默认为类名首字母小写。

    二:作用域用scope来指定

    用来指定bean的作用域

    singleton---单例  只创建一个对象。

    prototype---原型  想创建多少个就创建多少了。

    request---针对Web项目,不同的请求创建单独的Bean对象,同一个请求共享一个Bean。

    session---针对Web项目,不同的会话创建单独的Bean对象,同一个会话共享一个Bean。

    三:自动装配(@Autowired)与精确装配

    @Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。

    1、配置在属性上;

    2、配置在set方法上;

    3、配置在构造方法上。

    自动装配中了解这两个就差不多了

    1:byName在容器中寻找和需要自动装配的属性名相同的Bean

    2:byType在容器中寻找和需要自动装配的属性类型相同的Bean

    @Qualifier配合@Autowired使用。

    把按类型配置变为按名称匹配

     1、配置在属性上;

    2、配置在set方法上;

    3、配置在构造方法的参数上。

    @Resource  (这个注解是最强的)

    @Resource注解默认按名称装配。名称可以通过name属性指定,如果没有指定name属性,默认取属性的名称作为bean名称寻找依赖对象。

    注意:如果没有指定name属性,并且按照默认的名称找不到依赖对象时,@Resource会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

    1、配置在属性上;

    2、配置在set方法上。

  • 相关阅读:
    这鸡汤、真香
    linux 编译安装python并且安装虚拟环境工具
    前端数据删除
    前后端分离DRF项目初始化
    ubuntu 安装nginx docker
    ubuntu安装vue
    虚拟环境安装
    sql语句优化
    Python之网络编程 进程 线程 协程
    Python之网络编程 文件上传 基于udp的协议的socket socketsever同时接收多方消息
  • 原文地址:https://www.cnblogs.com/hellokitty1/p/5074743.html
Copyright © 2011-2022 走看看