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();
    
        }
    
    
    
    }
  • 相关阅读:
    HDU 1850 Being a Good Boy in Spring Festival
    UESTC 1080 空心矩阵
    HDU 2491 Priest John's Busiest Day
    UVALive 6181
    ZOJ 2674 Strange Limit
    UVA 12532 Interval Product
    UESTC 1237 质因子分解
    UESTC 1014 Shot
    xe5 android listbox的 TMetropolisUIListBoxItem
    xe5 android tts(Text To Speech)
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11303519.html
Copyright © 2011-2022 走看看