zoukankan      html  css  js  c++  java
  • spring学习笔记之---IOC和DI

    IOC和DI

    (一)IOC

    (1) 概念

    IOC (Inverse of Control) 反转控制,就是将原本在程序中手动创建对象的控制权,交给spring框架管理。简单的说,就是创建对象控制权被反转到了spring框架

    (2)实例

    1.UserService.java

    package service;
    
    public interface UserService {
        public void getAa();
    }

    2.UserServiceImpl.java

    package service;
    
    
    
    public class UserServiceImpl implements UserService{
    
        @Override
    
        public void getAa() {
    
            System.out.println("aaaaaaaaaaa");
    
        }
    
    }

    3.applicationContext.xml

    <?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">
    
       <!--UserService将创建权交给spring-->
    
    <bean id="userService" class="service.UserServiceImpl"></bean>
    
    </beans>

    4.UserTest.java

    package Test;
    
    
    
    import org.junit.Test;
    
    import org.springframework.context.ApplicationContext;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import service.UserService;
    
    import service.UserServiceImpl;
    
    
    
    public class UserTest {
    
        @Test
    
        public void one(){
    
            //创建spring工厂
    
            ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
    
            //通过工厂获得类
    
            UserService userService=(UserService)applicationContext.getBean("userService");
    
            //通过类调用方法
    
            userService.getAa();
    
        }
    }
    (二)DI

    (1)概念

    DI(Dependency Injection)依赖注入,就是在spring创建这个对象的过程中,将这个对象所依赖的属性注入进去

    (2)实例

    1.UserService.java

    package service;
    
    public interface UserService {
    
        public void getAa();
    
    }

    2.UserServiceImpl.java

    package service;
    
    
    
    public class UserServiceImpl implements UserService{
    
        //添加属性
    
        private String name;
    
    
    
        public String getName() {
    
            return name;
    
        }
    
    
    
        public void setName(String name) {
    
            this.name = name;
    
        }
    
    
    
        @Override
    
        public void getAa() {
    
            System.out.println("aaaaaaaaaaa"+name);
    
        }
    
    }

    3.applicationContext.xml

    <?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">
    
    <!--UserService将创建权交给spring-->
    
    <bean id="userService" class="service.UserServiceImpl">
    
        <!--设置属性-->
    
        <property name="name" value="张三"/>
    
    </bean>
    
    </beans>

    4.UserTest.java

    package Test;
    
    
    
    import org.junit.Test;
    
    import org.springframework.context.ApplicationContext;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import service.UserService;
    
    import service.UserServiceImpl;
    
    
    
    public class UserTest {
    
        @Test
    
        public void one(){
    
            //创建spring工厂
    
            ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
    
            //通过工厂获得类
    
            UserService userService=(UserService)applicationContext.getBean("userService");
    
            //通过类调用方法
    
            userService.getAa();
    
        }
    
    
    
    }
  • 相关阅读:
    Android四大基本组件介绍与生命周期
    TRIZ系列-创新原理-23-反馈原理
    hibernate之6.one2many单向
    软件评測师真题考试分析-5
    WAS集群系列(3):集群搭建:步骤1:准备文件
    Android Developer:合并清单文件
    移动均值滤波与中值滤波
    使用React的static方法实现同构以及同构的常见问题
    mysql合并同一列的值
    iOS开发
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11303519.html
Copyright © 2011-2022 走看看