zoukankan      html  css  js  c++  java
  • 啥是IOC ?啥是DI ?

    1、IOC是什么?
       IOC (inverse of controll)控制反转:所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml)
    2、DI是什么?
       Di(dependency injection)依赖注入:实际上DI和IOC是同一个概念,spring设计者认为DI更能准确表示spring的核心技术

       笔者认为:学习框架最重要的就是学习各种配置

    3、传统的方法和使用spring的方法区别

        使用spring,没有new对象,我们把new对象的任务交给spring框架 

    4、第二个spring项目

    结构层

    源码:UserService.java 

    package UserService;
    import ByService.ByService;
    public class UserService {
    	private String name;
    	private ByService byservice;
    
    	public void setByservice(ByService byservice) {
    		this.byservice = byservice;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public void say() {
    		System.out.println("你好:" + name);
    		byservice.sayBye();
    	}
    }

    源码:ByService.java

    package ByService;
    public class ByService {
    	private String name;
    
    	public void setName(String name) {
    		this.name = name;
    	}
        public void sayBye()
        {
        	System.out.println("Bye"+name);
        }
    }

    源码:applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
    	xmlns="http://www.springframework.org/schema/beans"
    	xmlns:p="http://www.springframework.org/schema/p"
        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="UserService" class="UserService.UserService">
          <property name="name" value="小明" />
          <property name="byservice" ref="ByService" />
        </bean>
    	<bean id="ByService" class="ByService.ByService">
    	  <property name="name" value="小紅"/>
    	</bean>
    </beans>

    源码:Test.java

    package Test;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import UserService.UserService;
    
    public class Test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
            UserService u=(UserService)context.getBean("UserService");
            u.say();
    		
    	}
    
    }
    

    5、项目总结:
       spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们只要getBean(id)即可。

  • 相关阅读:
    C#内存释放(垃圾回收)
    C#内存释放(垃圾回收)
    C# winform窗口打开特效及窗口位置居中
    QString 字符串操作
    qt exe文件添加图标
    Qt 多语言转换
    加密算法比较
    C语言中最常用标准库函数
    fprintfAndFscanf简单操作
    vs使用fscanf和fprintf错误警告处理
  • 原文地址:https://www.cnblogs.com/Black-YeJing/p/9131129.html
Copyright © 2011-2022 走看看