zoukankan      html  css  js  c++  java
  • 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);
            }
  • 相关阅读:
    Mock工具Mockito教程
    基于Jmeter的自动化测试实施方案
    基于敏捷的测试交付物通用设计
    Jmeter 冒烟测试设计
    Jmockit之mock特性详解
    Sonar 常用代码规则(二)
    从Hg迁移到Git
    使用谷歌colab训练crnn模型
    使用AIstudio训练YOLOv3模型
    阿里云服务器部署Djano+Nginx+uWSGI+conda+Https
  • 原文地址:https://www.cnblogs.com/qin1993/p/11660990.html
Copyright © 2011-2022 走看看