spring常用注解

      本次本家儿要介绍Spring注解。

      注解分为两类:

        1、一类是利用Bean,便是把已经在xml文件中设置装备摆设好的Bean拿来用,完当作属性、方式的组装;好比@Autowired , @Resource,可以经由过程byTYPE(@Autowired)、byNAME(@Resource)的体例获取Bean;

        2、一类是注册Bean,@Component , @Repository , @ Controller ,@Service , @Configration这些注解都是把您要实例化的对象转化当作一个Bean,放在IoC容器中,等您要用的时辰,它会和上面的@Autowired , @Resource共同到一路,把对象、属性、方式完美组装。

东西/原料

  • 电脑

第一步:注解利用Bean

  1. 1

    @Autowired或者(  @Autowired(required=false))


    Spring 2.5 引入了 @Autowired 注释,它可以对类当作员变量、方式及机关函数进行标注,完当作主动装配的工作。 经由过程 @Autowired的利用来消弭 set ,get方式。

    若是我们想利用名称装配可以连系@Qualifier注解进行利用,如下:

    @Autowired() @Qualifier("baseDao")     

     private BaseDao baseDao;  


    1、required属性

      required属性值可觉得true( 默认值)和false。若是为true的话,没有匹配的类则抛出异常;若是为false,则暗示不是强制必需可以或许找到响应的类,无论是否注入当作功,都不会抛错。

    2、工作道理

     注解解析器:AutowiredAnnotationBeanPostProcessor

    2.1、Spring容器启动时,AutowiredAnnotationBeanPostProcessor被注册到容器;

    2.2、扫描代码,若是带有@Autowired注解,则将依靠注入信息封装到InjectionMetadata中(见扫描过程);
    2.3、建立bean时(实例化对象和初始化),会挪用各类BeanPostProcessor对bean初始化,AutowiredAnnotationBeanPostProcessor负责将相关的依靠注入进来;


    3、@Autowired扫描过程

    扫描当前类中标注@Autowired的属性和方式;

    再查找父类中注@Autowired的属性和方式,依次遍历;



    详解在分歧场景利用的体例:https://blog.csdn.net/horacehe16/article/details/79811763

  2. 2

    @Resource(这个注解属于J2EE的)

    1、默认安照名称进行装配,名称可以经由过程name属性进行指定, 若是没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,若是注解写在setter方式上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。可是需要注重的是,若是name属性一旦指定,就只会按照名称进行装配。

     Java代码  

     @Resource(name="baseDao")     

     private BaseDao baseDao;     

    2、 保举利用:@Resource注解在字段上,且这个注解是属于J2EE的,削减了与spring的耦合。最主要的这样代码看起就比力优雅。

    3. 只指定@Resource注解的type属性,则从上下文中找到类型匹配的独一bean进行装配,找不到或者找到多个,城市抛出异常

    4. 既指定了@Resource的name属性又指定了type,则从Spring上下文中找到独一匹配的bean进行装配,找不到则抛出异常

    43a7d933c895d1431a88f7cb7df082025baf075f.jpg aec379310a55b3192d83909d4da98226cefc17db.jpg
  • 发表于 2019-12-16 19:49
  • 阅读 ( 822 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具