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. 搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.环境搭建 1.安装ffmpeg 下载对应系统的ffmpeg安装包,个人采用windows平台进行开发,所以安装了windo ...

  2. EJB基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-ejb/ 什么是EJB 可移植的, 可重用的, 可伸缩的业务应用程序的平台 为什么选择EJB ...

  3. solr学习笔记-开篇

    由于工作需要,近期接触了一下全文检索的相关技术,从lucenen到solr开始慢慢一路摸爬滚打,仅以此文记录自己的学习里程和记录下各种坑. 本次学习基于以下环境版本: java7,solr5.5.4( ...

  4. Python给小说做词云

    闲暇时间喜欢看小说,就想着给小说做词云,展示小说的主要内容.开发语言是Python,主要用到的库有wordcloud.jieba.scipy.代码很简单,首先用jieba.cut()函数做分词,生成以 ...

  5. 静态库 .a 转成共享库 .so

    .a 是有一系列 .o 文件通过 ar 程序打包在一起的静态库,要把它转成动态库只需先解开,生成一堆 .o 文件,再通过编译器(比如 gcc 或 ifort,视具体情况而定)编成动态库即可. ar - ...

  6. Java垃圾回收总结

    基本概念 垃圾回收器(Garbage Collector )是JVM非常重要的一个组成部分,主要用于自动化的内存管理.相比手动的内存管理,自动化的内存管理大大简化了程序员的开发难度并且更加安全,避免了 ...

  7. JAVA反射原理

    什么是反射? 反射,一种计算机处理方式.是程序可以访问.检测和修改它本身状态或行为的一种能力.java反射使得我们可以在程序运行时动态加载一个类,动态获取类的基本信息和定义的方法,构造函数,域等.除了 ...

  8. php获取二维数组中某一列的值集合

    $result //二维数组$uid_list = array_column($result, 'uid');

  9. HBuilder使用方法

    /*注:本教程针对HBuilder5.0.0,制作日期2014-12-31*/创建HTML结构: h 8 (敲h激活代码块列表,按8选择第8个项目,即HTML代码块,或者敲h t Enter)中途换行 ...

  10. Java基础(1) - 语法 & 概念

    Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...