最快实现spring 实例

      如果你是一个java程序,肯定会听过spring。然后你也会对IOC和AOP倍感好奇。我也不罗列概念,如果不懂可以到网上百科一下,很详细。 我简单的引入控制反转(IOC)的形式以及作用

    实例1:A类需要B类的实例时,直接在A类中new一个B 的实例。这是中耦合性太强

public class B {
    public B(){}
    public void bout(){
        System.out.println("B");
    }
}

public class A  {
    private B b=new B();
    public A(B b){
        this.b=b;
    }
    public void aout(){
        System.out.println(“A”);
        b.bout();
    }
}

 实例2:

//定义接口
public interface InterfaceB {
    public void out();
}
//实现接口
public class ClassB implements InterfaceB {
    public ClassB(){
        
    }
    public void out() {

    }

}
public class ClassA {
    private InterfaceB b;
   //这是我们平时用的方法   
    public ClassA(){
        this.b=new ClassB();
    }
   //这就是我想要结果,将需要的实例由外部类提供。而不由自身实现。
    public ClassA(InterfaceB b){
        this.b=b;        
    }
    public void out(){
        System.out.println("");
        this.b.out();
    }
}

   那么我们要的实例由谁提供管理呢? 这就要说到spring里面的IOC。还是说说它的简单概念。

   IOC Inversion of Control,即控制反转,是一个重要的面向对象编程的法则,用来减少耦合度。控制反转还有一个名字叫做依赖注入(Dependency Injection),简称DI。IoC不是什么技术,与GoF一样,是一种设计模式。应用控制反转,对象在被创建的时候,由一个调控所有对象的容器,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。

   实例说明问题 :

   工程图片

 

    HelloService 接口

    

/**
 * 
 */
package com.ch.hello;

/**
 * @author 陈华
 *
 */
public interface HelloService {
	public void sayHello();
}

 HelloServiceImp

/**
 * 
 */
package com.ch.hello.impl;

import com.ch.hello.HelloService;

/**
 * @author 陈华
 * 
 */
public class HelloServiceImp implements HelloService {

	private String helloworld;

	public HelloServiceImp() {
	}

	public HelloServiceImp(String helloworld) {
		this.helloworld = helloworld;
	}

	public void setHelloworld(String helloworld) {
		this.helloworld = helloworld;
	}

	public void sayHello() {
		System.out.println(this.helloworld);
	}

}

 

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-2.5.xsd">
	<bean id="HelloService" class="com.ch.hello.impl.HelloServiceImp">
		<property name="helloworld" value="hello,android!"></property>
	</bean>
</beans>

 

测试类

/**
 * 
 */
package com.ch.client;

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

import com.ch.hello.HelloService;

/**
 * @author 陈华
 * 
 */
public class HelloClient {

	public static void main(String[] args) {
		ApplicationContext ac=new FileSystemXmlApplicationContext("src/applicationContext.xml");
		HelloService helloService=(HelloService)ac.getBean("HelloService");
		helloService.sayHello();
	}

}

 ac.getBean("HelloService");  这句是关键获取实例

    创建一个简单的java工程,引入spring 的core包。用myeclipse6.5就可以啦。非常快

   我的 QQ 455927885  一起探讨学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值