spring导入bean的多种方式

BeanFactor

它只是个接口

DefaultListableBeanFactory

它是核心,是 Spring 注册及加载Bean 的默认实现

ApplicationContext

这个容器工厂也是继承了EnvironmentCapable, 持有ListableBeanFactory的属性,

BeanFactor和ApplicationContext 的联系和区别?

一个懒加载,一个迫切加载

BeanDefinitionRegistry

负责注册BeanDefinition ,并定义了对 BeanDefinition 的各种增删改操作,BeanDefinition 是对Ben的封装

ClasspathXmlApplicationContext

ClasspathXmlApplicationContext也是IOC容器工厂中的一员,默认 从classpath中获取XML配置,使用 XmlBeanDefinitionReader 进行解析配置,这是一个简单的、一站式便利的ApplicationContext。

通俗化就是使用xml配置文件

AnnotationConfigApplicationContext

通过注解创建文件

这有个面试题

BeanFactory和ApplicationContext的联系和区别!!!

联系:ApplicationContext是持有一个BeanFactory

区别:

BeanFactory中bean都是使用的时候才创建的!

ApplicationContext对于单例(非lazy),创建容器的时候就初始化了!

ApplicationContext不是全部都是迫切加载哦

spring注入bean有两种方式一个通过xml,一个通过注解文件,先看xml版本

xml版本:通过《bean》或者《。。》反正啥扫描,扫描包下的类,然后交给spring容器

注解文件就有多种方式注入bean

@ComponentScan
@Import中就有三种,一个个bean放进去,多选器,注册器

还有一种条件注入bean

我们先搞一个简单案例

先给大家看下目录结构

applicationContext
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
"
>
    <bean id="MyDemo" class="java.util.Date"></bean>
</beans>

这个代码就不放进来了哈

demo成功

后面是java config版本

Java Config是Spring框架中一种基于Java代码配置方式,可以用来代替XML配置。相比XML配置,Java Config更加直观、易于维护和扩展。在使用Java Config时,我们需要创建一个带有@Configuration注解的类作为配置类,在其中使用@Bean注解对应用程序的组件进行配置和管理

个人感官就是用注解,配置spring

这样就把bean交给spring了

但并不是打了注解就完事,还要在AnnotationConfigApplicationContext中导入class类

对了还有第三种,通过包扫描,把bean扫描进spring进去管理,也有基于注解的

这个注解很关键,因为后续springboot启动用到了他,懂了这个注解就知道部分springboot启动了

你可以指定包路径,也可以不指定包路径,你不指定包路径的话,他会默认扫描本层和子目录下带有controller,service,等,然后把bean注入到spring容器中管理

第三中管理bean方法

@import

如何导入多个bean,可以用逗号隔开,也可以通过 ImportSelector。

还有一个使用注册器的方法,注入bean

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值