Spring自动装配及自动注入

13 篇文章 0 订阅
7 篇文章 0 订阅

一、 自动装配 autowire

1、byType,按照类型自动装配,注意点,使用类型自动装配,在IOC容器中相同类型的bean只能有一个

在这里插入图片描述

2、byName,按照名称自动装配。bean的id和需要装配的变量名称一致

在这里插入图片描述

3、constructor

bean的继承关系

parent,通俗点就是配置属性的复用,但自动注入的不能够被继承;子类继承父类的属性,如果修改子类属性有效,父类不会被覆盖

abstract属性

将bean的abstract属性设置为true,那么这个bean不会被实例化,仅仅作为配置模板使用

二、前置依赖:depends-on

主要作用于有先后顺序的bean,但是这些bean之间又没有强依赖关系,

三、bean的作用域

在这里插入图片描述

通过scope=“”设置。
1、singleton:
(1)在ioc容器中以单例形式存在;
(2)bean的实例在容器创建时候就会创建;
所以每次请求返回相同对象
2、prototype
(1)每次请求返回不同对象
(2)bean的创建,在获取时候才去创建bean对象

四、引入外部配置文件

在这里插入图片描述
在这里插入图片描述

五、bean的生命周期

ioc容器可以处理bean的生命周期,spring允许在bean生命周期的特定点执行特定任务。

在这里插入图片描述

主要的生命周期方法:

1、init,初始化方法
2、destory,销毁方法

bean的整个生命周期方法:

1、调用构造方法创建实例
2、设置属性
postProcessBeforelnitialization(后置处理器)
3、调用init-method -----bean已经准备好,可以进行使用了。
postProcessAfterlnitialization(后置处理器)
4、容器关闭时候调用destory方法

后置处理器

p:driver="${jdbc.driver}" p:url="${jdbc.url}"
p:username="${jdbc.username}" p:password="${jdbc.password}"

六、spring的注解

在这里插入图片描述

自动扫描:
1、在配置文件中,开启扫描component-scan,并指定扫描的包。
2、需要在要加入到ioc容器中的类加上注解。
@component @controller @ service @repository
–>创建容器时侯,扫描指定包下面的,带上以上注解的类
3、扫描到io容器中的bean,id默认为非限定类,字母小写。例如Car—car
4、关于id,还可以使用注解的value来指定其id,例如@component(value=“id”)
自动装配
@autowired注解
1、按照类型匹配;
2、如果在ioc容器中有多个相同类型的bean,那么会采用byName的方式去匹配;
3、如果在ioc容器中找不到匹配的bean,那么默认会抛异常。可以使用@Autowired(required=false)来设置bean是否需要注入(默认是true)
@resource(name=“”)(jdk的注解)
@Qualifier(“属性”)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring自动装配(Autowiring)是一种方便的依赖注入机制,它可以自动将bean之间的依赖关系进行解析和注入,而不需要显式地配置bean之间的关联。 在Spring中,有以下几种方式可以实现自动装配: 1. 根据类型自动装配Spring会根据bean的类型来自动匹配并注入依赖。使用`@Autowired`注解或者`<autowired>`标签进行标记。 ```java @Autowired private SomeDependency someDependency; ``` 2. 根据名称自动装配Spring会根据bean的名称来自动匹配并注入依赖。使用`@Autowired`注解结合`@Qualifier`注解或者`<qualifier>`标签进行标记。 ```java @Autowired @Qualifier("myDependency") private SomeDependency someDependency; ``` 3. 构造器自动装配Spring会根据构造器的参数类型和参数名称来自动匹配并注入依赖。使用`@Autowired`注解在构造器上标记。 ```java @Autowired public MyService(SomeDependency someDependency) { this.someDependency = someDependency; } ``` 4. 使用`@Resource`注解:`@Resource`注解是Java原生的注解,Spring也支持它进行自动装配。它可以根据bean的名称或者类型进行自动匹配。 ```java @Resource private SomeDependency someDependency; ``` 自动装配需要在Spring配置文件中启用。可以使用`<context:annotation-config>`标签或`@ComponentScan`注解来开启自动装配功能。 需要注意的是,自动装配是一个便利的功能,但在某些情况下可能会导致不可预料的问题,例如多个候选bean或循环依赖。因此,在使用自动装配时,建议仔细设计和管理bean之间的依赖关系,并在必要的时候明确指定装配方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值