IOC控制反转 xml配置方式

时间:2024-5-20    作者:老大夫    分类: SSM


ioc是spring的核心功能,叫做控制反转,让框架容器去管理各个组件(对象)。

这也是它智能的原理。

如何将实体类告诉spring容器呢?

配置xml,在resources下右键即可自动生成spring的xml配置文件,在里面声明标签,id是类名,class是这个类具体在哪个包,这样容器就可以知道了。

  1. 无参组件构造方法
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">

<!--       1.可以使用无参构造函数实例化组件,如何进行ioc配置-->
<!--    <bean   一个组件信息   一个组件的对象-->
<!--            id   组件的标识  唯一  方便后期读取-->
<!--            class  组件类的权限限定-->
<!--            将一个组件类声明两个组件信息  [默认是单例模式]  会实例化两个对象-->

    <bean id="HappyComponent" class="com.atguitu.ioc_01.HappyComponent"></bean>
    <bean id="HappyComponent2" class="com.atguitu.ioc_01.HappyComponent"></bean>
</beans>
  1. 静态工厂的声明方法(静态工厂就是类里面专门有一个向外return对象的方法的类)
    只需要多声明出 factory-method ,向外return对象的方法即可。类中的方法必须是静态方法!
<bean id="ClientService" class="com.atguitu.ioc_01.ClientService" factory-method="createInstance"></bean>
  1. 非静态工厂的声明方法(非静态的区别就是向外return对象的方法是非静态的
    两步配置 1.声明工厂类对象。2.声明拿出来的类的对象,和工厂的方法。类中的方法必须是非静态方法!
<!--    1.声明工厂类的组件(对象)-->
    <bean id="defaultServiceLocator" class="com.atguitu.ioc_01.DefaultServiceLocator"></bean>
<!--    2.通过指定非静态工厂对象和方法名,来配置生成的ioc信息-->
    <bean id="clientService" factory-bean="defaultServiceLocator" factory-method="createClientServiceInstance"></bean>


扫描二维码,在手机上阅读

推荐阅读: