Java进阶---spring工场的实现(又叫ioc容器)

spring工场的实现(又叫ioc容器)

问题:你想让bean工厂帮你new对象,首先要告诉spring bean工厂需要产生什么对象?

第1步:导spring ioc相关的jar包
官网jar包下载地址

第2步:通过配置告诉spring bean工厂生产什么样的bean?

配置方式一:基于xml配置
配置xml的配置文件链接

  1. BeanFacotry 按需实例化
    ① getBean(id/name名称)
    ② getBean(类Class)
    ③ getBean(id/name,class)
    ④ getBean(class,构造方法参数)
    ⑤ getBean(id/name,构造方法参数)
    实例
  2. ApplicationContext 容器启动实例化所有的bean
    ① ClassPathXmlApplicationContext
    ② FileSystemXmlApplicationContext
    注意:classpath:spring-beans.xml
    ③  WebApplicationContext 集成 mvc框架
    ④ 默认spring bean工厂中产生的bean都是单例bean ,可以通过scope属性来修改
    例如:
    在这里插入图片描述
    配置方式2:基于注解配置
    1、xml+注解配置 (第1步:在xml中开启注解配置)
    注意:这里需要额外导入spring-aop的jar包
@Component 被标示类会被纳入spring ioc容器进行管理,相当于
@Value 为spring中所有管理的该类对象注入基本类型和String属性值
@Autowired 为spring中所有管理的该类对象注入引用类型属性值;默认按类型注入,可以通过@Qualifier(“dog2”)指定注入哪个bean,同时也可以通过bean加入 primary=“true” 优先被Autowired注入
@Resource 默认按类型注入,如果指定了name属性,则按bean名称注入

例如:
在这里插入图片描述

2、java配置+注解配置 (第1步:在配置类中开启注解扫描)
@ComponentScan(“com.cc.config”) 会去com.cc.config扫描@Component @Value @Autowired进行创建bean或注入属性值
在这里插入图片描述
配置方式3:基于java的配置(主流)
注意:需要再多导入一个包spring-aop-5.0.14.RELEASE.jar

@Configuration 指定该类为spring ioc容器配置类,相当于beans.xml文件
@Bean(name=“user”) 将方法返回值纳入到spring ioc容器进行管理,相当于 bean

在工厂中配置你所需要的
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52841956/article/details/111238628
今日推荐