2021-11-18

Spring框架两个核心部分:IOC和Aop

1.IOC:控制反转,把创建对象过程交给Spring处理

2.Aop,面向切面,不修改源代码进行功能增强

IOC容器

一.IOC底层原理

(1)xml配置文件,配置创建的对象

<bean id="user" class="com.it.spring5.User"></bean>

(2)有service和dao类,创建工厂类

class UserFactory{
    public static UserDao getDao(){
        String classValue = class属性值; //1.xml解析
        //2.通过反射创建对象
        Class clazz = Class.forName(classValue);
        //3.创建对象
        return (UserDao)clazz.newInstance();
    }
}

二.IOC接口(BeanFactory)

1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂

2.Spring提供IOC容器实现两种方式(两种接口)

(1)BeanFactory : IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用

加载配置文件时不会创建对象,在获取对象(使用)才去创建对象

(2)ApplicationContext : BeanFactory接口的子接口,提供了更多更强大的功能,一般由开发人员使用

加载配置文件时就会把在配置文件对象进行创建

三.IOC操作Bean管理

1.什么是Bean管理

(1)Spring创建对象

(2)Spring注入属性

2.Bean管理操作有两种方式

1.基于xml配置文件方式实现

1.基于xml方式创建对象
<bean id="user" class="com.it.spring5.User"></bean>

(1)在Spring配置文件中,使用bean标签,标签里添加对应属性,就可以实现对象创建

(2)在bean标签有很多属性,常用属性

id属性:为对象取唯一标识

class属性:类全路径(包类路径)

2.基于xml方式注入属性

(1)DI:依赖注入,就是注入属性

1.第一种注入方式:使用set方法进行注入

1.创建类,定义属性和对应的set方法

2.在Spring配置文件配置对象创建,配置属性注入

    <!--  2.set方法注入属性  -->
    <bean id="book" class="com.it.spring5.Book"></bean>
    <!--  
        使用property完成属性注入
        name:类里面属性名称
        value:向属性注入的值
    -->
    <property name="bname" value="数据结构"></property>
2.第二种注入方式:使用有参构造函数进行注入

(1)创建类,定义属性,创建属性对应有参构造方法

(2)在Spring配置文件中配置

<!--    有参构造方法注入属性-->
    <bean id="orders" class="com.it.spring5.Orders">
        <constructor-arg name="oname" value="笔记本"></constructor-arg>
        <constructor-arg name="addrss" value="China"></constructor-arg>
<!--    可以根据索引值对应到属性    -->
<!--        <constructor-arg index="" value=""></constructor-arg>-->
    </bean>
3.p名称空间注入

(1)使用p名称空间注入,可以简化基于xml配置方式

第一步 添加p名称空间在配置文件中

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

第二部 进行属性注入,在bean标签里面进行操作

<bean id="book" class="com.it.spring5.Book" p:bname="线代" p:bauthor="老师"></bean>
</beans>
3.xml注入其他类型属性
1.字面量

(1)null值

 <property name="address">
            <null></null>
        </property>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容