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. 执行ANT JAVA三种方式

    1. 命令行 <target name="reporttoexcel" depends="report"> <exec executable= ...

  2. .NET链接Oracle 参数绑定问题

    在.NET项目中链接Oracle使用的驱动是 Oracle.ManagedDataAccess.dll ,这里下载 所遇到的问题 使用存储过程一个参数没有问题,发现两个或两个以上会有参数没传过来的现象 ...

  3. Unity3D常用 API 之 Invoke 函数调用

    1.金钱副本细节完善 1.1.宝箱自动掉落 给宝箱预制体添加刚体组件即可. 1.2.实现按键宝箱批量掉落 ①将实例化生成宝箱的代码单独封装成一个函数: ②使用 for 循环,批量生成宝箱. 按一次z键 ...

  4. Python原理 -- 深浅拷贝

    python原理 -- 深浅拷贝 从数据类型说开去 str, num : 一次性创建, 不能被修改, 修改即是再创建. list,tuple,dict,set : 链表,当前元素记录, 下一个元素的位 ...

  5. 转化来的图标用法symbol引用‘font-class引用及Unicode引用

  6. JS常用数据校验集合(adding)

    常用数据校验集合 var _validator = { MAIL_REGEX: /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,; ...

  7. 一些css书写的小技巧

    一.css顺序 首先声明,浏览器读取css的方式是从上到下的.我们一般书写css只要元素具备这些属性就会达到我们预期的效果,但是这会给以后的维护和浏览器的渲染效率带来一定的影响,那么该怎么书写css的 ...

  8. php中有关合并某一字段键值相同的数组合并

    <?php function combine($array,$start,$key,$newkey){ static $new; //静态变量 foreach($array as $k=> ...

  9. 7.如何发布vue项目到服务器

    1.确保程序是可运行的,即npm run dev可以运行 2.把index.js修改 3.运行npm命令npm run build 4.生成的dist文件为 直接点击index.html就能运行,部署 ...

  10. phpcmsV9常用标签

    头部: <title>{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO ...