Spring简单入门=====IOC

ioc

ioc容器本质上就是一个工厂,用工厂模式,创建一个static方法,返回值是所需要的对象,使用jdom读取xml中得路径,然后用反射newInstance创建一个对象,xml配置文件路径。

两个接口

beanfactory,懒汉模式,什么时候使用什么时候创建,但是一般不用这种,这种框架内部使用,一般用application,因为applicationcontext在tomcat启动的时候就创建所有对象。创建对象过程都在服务器启动时候完成。

依赖注入两种常用方式

setter方法,有参构造,普通创建对象也是这样给属性设置值得
setter就是bean下得poperty
有参是bean下得constrocter-org
还有一种p名称空间注入,用的不多
属性中设置空指
空指注入
在这里插入图片描述
特殊符号注入
字面量得意思就是在对象里面得属性设置默认值

注意:
在xml文件中<>用&lt &gt做转义
在这里插入图片描述
也可以使用cdta对内容做原样输出

外部bean注入
在这里插入图片描述
通过ref引用

内部bean和级联赋值
在这里插入图片描述
适用于实体类中有对象类型得属性
在这里插入图片描述
级联赋值

注入数组类型
在这里插入图片描述

注入list集合类型
在这里插入图片描述

注入map集合类型
在这里插入图片描述
set集合注入
在这里插入图片描述
字符串数组可以用Arrays.toString()打印输出
在这里插入图片描述
对象注入到list中

提取list集合类型属性注入
1.引入util名称空间
在这里插入图片描述
2.使用
在这里插入图片描述
在这里插入图片描述
普通bean和工厂bean
在这里插入图片描述
工厂bean是spring内置的
在这里插入图片描述

public class mybean implements FactoryBean  {
    @Override
    public Object getObject() throws Exception {
        return null;
    }
//工厂bean返回的对象与定义的返回类型并不一致,主要是由第一个方法决定的
    @Override
    public Class<?> getObjectType() {
        return null;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}

bean作用范围
默认单实例,可设置多实例
单实例,就一个对象,多实例,每次都创建一个对象
在这里插入图片描述
输出之后地址一样,说明是单实例,默认也是单实例.

通过bean标签中的scope设置是单实例还是多实例
在这里插入图片描述
视频16
在这里插入图片描述
创建时机不一样,多实例是调用getbean时候再创建对象

bean的生命周期
在这里插入图片描述
在这里插入图片描述
加入后置处理器之后
在这里插入图片描述
后置处理器
在这里插入图片描述
两个方法返回bean,分别在初始化之前初始化之后执行
在这里插入图片描述
配置后置处理器,因为以实现了后置处理器方法,所以xml中的bean可以被识别

bean,xml的自动装配
在这里插入图片描述
根据名称就是引入的bean的id一致,根据类型的话不需要指定id,但是存在多个类型相同的bean的时候,还是要使用根据名称注入

引入外部的属性文件
例如引入jdbc德鲁伊连接池,需要在properties文件中配好相关连接信息,然后在spring.xml中配置context命名空间,
在这里插入图片描述
在这里插入图片描述
注解方式实现对象创建

第一步,在xml中引用命名空间并且开启组件扫描
在这里插入图片描述
第二部,加注解
在这里插入图片描述
@Compent注解
第三步,使用
在这里插入图片描述
在这里插入图片描述
四个注解功能一样
使用细节
可以使用context中的属性配置扫描哪些包
可以使用context中的属性配置扫描哪些包
在这里插入图片描述
细节2设置不去扫描哪些内容
在这里插入图片描述
属性注入
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
必然有一个UserDaoimpl1的类加了@compent(value=“userDaoImpl”)注解,所以可以根据名称找到bean并且进行注入
在这里插入图片描述
或者用@Resouce,可根据类型或名称进行注入
注意@Resource是javax的扩展包中的内容
在这里插入图片描述
@Value,注入普通属性,将abc注入name属性
在这里插入图片描述
完全注解开发
实现不用xml文件
使用配置类,加@Configuration配置类注解,加@CompensScan注解扫描
在这里插入图片描述
使用的区别,不加载xm文件了,改加载配置类
在这里插入图片描述

总结,ioc底层,工厂模式加反射,可用xml,也可用注解,也可完全使用注解

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页