• Spring IOC


    控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
    其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。
    简单来说,Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。

    IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,单元测试不再需要单例和JNDI查找机制。最小的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载。

    IOC 解决了类与类之间的依赖关系。程序员将控制类与类之间依赖的权利交给了IOC,IOC 的原理很简单,底层就是java的反射。利用set方法对实例的依赖进行注入。

    xml方式注入bean 

    <?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">
        <bean id="person" class="cn.qin.entity.Person">
            <property name="name" value="qq"/>
            <property name="age" value="1"/>
        </bean>
    </beans>

    获取bean 

     public static void main(String[] args) {
            ApplicationContext app =new ClassPathXmlApplicationContext("beans.xml");
            Person person=(Person)app.getBean("person");
            System.out.println(person);
    
        }

    注解的方式注入bean  ,创建一个配置类Config,给容器注册一个类 返回Person类型

    @Configuration
    public class Config {
        @Bean("person1") //设置bean的id 不设置默认使用方法名
        public Person person(){
            return new Person("qlr",26);
        }
    }

    获取bean

    AnnotationConfigApplicationContext app = new AnnotationConfigApplicationContext(Config.class); 
    Person person
    =(Person)app.getBean("person1");

    打印 bean 的id

       String[] names=app.getBeanDefinitionNames();
            for (String name : names){
                System.out.println(name);
            }
  • 相关阅读:
    Qt5:快速设计对话框 QtDesigner 的使用
    Qt5:为菜单项添加图标 、 快捷键 和 状态栏 提示
    Qt5:在窗口上创建菜单栏
    Qt5:主窗口的创建 子类化QMainWindow
    AltiumDesigner设计快速入门
    AT24C02的MSP430驱动
    DSP_Builder设计方法说明_SinWave
    矩阵按键的MSP430驱动函数
    DAC8552使用说明
    PS2的FPGA解码模块
  • 原文地址:https://www.cnblogs.com/qin1993/p/11660990.html
Copyright © 2020-2023  润新知