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);
            }
  • 相关阅读:
    MVC各部分技术体现
    SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    my SQL Workbench创建数据库
    哪些素质很重要,却是读书学不来
    给程序员最好的18个忠告!
    互联网协议入门(二)
    互联网协议入门(一)
    div+css命名规范大全
    javascript中this的用法
    XHTML 相对路径与绝对路径
  • 原文地址:https://www.cnblogs.com/qin1993/p/11660990.html
Copyright © 2011-2022 走看看