老生谈spring(二十五):手动装配VS自动装配

老生谈spring(二十五):手动装配VS自动装配,第1张

老生谈spring(二十五):手动装配VS自动装配

1、手动装配
手动装配是可以进行value和ref进行配置,因为他已经明确了指定的属性值,这个称之为手动装配。手动装配分为:

  • 模式注解装配
    例子:其实就是使用@Component注解,或者@Component注解的拓展,比如@Controller、@Service、Repository、@Configruation等,

这也是我们最常用的一种方式,直接通过spring mvc的注解把组件bean注入到spring容器中。

  • @Enable模块装配
    例子:

  • 条件装配

例子:
所谓条件装配,其实是Bean装配的前置条件,我们先来看一下例子:

@ConditionalOnBean
仅仅在当前上下文中存在某个对象时,才会实例化一个Bean
@ConditionalOnExpression
当表达式为true的时候,才会实例化一个Bean
@ConditionalOnMissingClass
某个class类路径上不存在的时候,才会实例化一个Bean
@ConditionalOnNotWebApplication
不是web应用

2、自动装配
自动装配的是根据他的指定装配规则,不需要明确指定,spring自动装配将匹配的属性值注入到bean中。
例子:

public class Auto {/**
     * 自动装配有Autowired和Resource
     * Autowired 他是根据类型的type进行匹配如果没有查找name如果2个都没有的话就匹配不到了。
     * Resource 他是根据name先进行匹配,如果没有的话在去type进行匹配,2中都没有的话就GG
     * equired 他是可以进行为NULL的,作为理解就可以了。
     * Autowired(required = false)他是可以定义为false 
     * */
    
    //开启自动装配
    @Autowired
    private Dog dog;
    //开启自动装配
    @Autowired
    private Cat cat;
    private Auto name;
    //创建get、set、tostring
}

  • 上一篇:Bean实例的创建(三)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/743290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-29
下一篇 2022-04-29

发表评论

登录后才能评论

评论列表(0条)

保存