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();
    
        }
    
    
    
    }
  • 相关阅读:
    IP分类:A,B,C,D,E五类
    Makefile之“=”、":="、“+=”、“?=”
    Makefile之字符串函数
    Makefile之嵌套执行make
    vi中使用“/”查找字符
    Makefile学习之显示命令与出错命令
    【转】Unity中写GLSL(一)—— 简单的diffuse color
    关于编译GITHUB上的工程
    认识了一个新的手机游戏剖析工具- SnapDragon Profiler
    U3D资料收藏
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11303519.html
Copyright © 2011-2022 走看看