`
haoran_10
  • 浏览: 442547 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring ioc注解入门

    博客分类:
  • java
阅读更多

spring框架现在用的是如火如荼

管理bean的功能想必是大多数用户用途最广的一个功能

而依赖注入用途也是非常广泛

不知道从什么版本开始注解功能让开发变得很简单,也很简洁

本小例子,就是用注解的方式实现bean管理和依赖注入

 

小米2手机快要面市了,人人都想要,本例就以此为情境。

 

1.手机接口---不用多说,为了减少耦合性

 

package com.ioc.inerface;

public interface ITelphone {
	public void call();
}

 

 2.小米实现

 

package com.ioc.impl;

import org.springframework.stereotype.Component;

import com.ioc.inerface.ITelphone;


@Component("telphone")
public class TelphoneImpl implements ITelphone{
	public String toString(){
		return "我是手机(小米2)";
	}

	@Override
	public void call() {
		System.out.println("bing~~~喂,小米1,我是米2");
	}
}

 

 3.手机开发出来,得有电话本,姑且认为是一个单独类(不是手机的组件),电话本,不需要接口,耦合度不需要考虑

 

package com.ioc.impl;

import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Component;

@Component("addressBook")
public class AddressBook {
	private Map mapBook = null;
	private void init(){
		mapBook = new HashMap();
		mapBook.put("小米1", "0001");
	}
	public String getNum(String name){
		if(mapBook == null){
			init();
		}
		return (String) mapBook.get(name);
	}
}

 

 

4.ok,手机开发好了,电话本也开发好了,人类出场,毕竟造这些东西都是给人类用,人类接口

 

package com.ioc.inerface;

public interface IPerson {
	public void call();
}

 

 

5.人类实现:

 

package com.ioc.impl;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.ioc.inerface.IPerson;
import com.ioc.inerface.ITelphone;
import com.ioc.util.BeanFactory;

@Component("person")
public class PersonImpl implements IPerson{
	@Autowired
	private AddressBook addressBook;
	public String toString(){
		return "i am a human";
	}

	@Override
	public void call() {
		ITelphone telPhone = (ITelphone) BeanFactory.getBean("telphone");
		String xm1Num = addressBook.getNum("小米1");
		System.out.println("---开始打电话,电话号码:"+xm1Num);
		telPhone.call();
		System.out.println("---打电话结束");
	}
}

 

 6.可是spring管理容器还没造好呢,难道要用的时候再造么,那不太晚了

 

package com.ioc.util;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class BeanFactory {
	private static ClassPathXmlApplicationContext ctx ;
	static{
		ctx = new ClassPathXmlApplicationContext("bean.xml");
	}
	public static  Object getBean(String beanName){
		return ctx.getBean(beanName);
	}
	public static void closeBeanFactory(){
		ctx.destroy();
	}
	
}

 

 7.嗯,配置文件还没加上

 

 

<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 	<!-- 扫描com.ioc下的所有类,自动为spring容器管理 -->
    <context:component-scan base-package="com.ioc"/>
</beans>

 

 8.ok,我们来测试吧

 

package com.ioc.test;

import com.ioc.inerface.IPerson;
import com.ioc.util.BeanFactory;

public class SpringIocTest {

	public static void main(String[] args) {
		IPerson perSon = (IPerson) BeanFactory.getBean("person");
		perSon.call();
		BeanFactory.closeBeanFactory();
	}

}

 

 运行结果:

 

---开始打电话,电话号码:0001

bing~~~喂,小米1,我是米2

---打电话结束

 

 

大功告成---其实在大多数运用中,这些知识就足够,简洁,易用,至于更详细的知识,需要进一步学习了。欢迎点评。

 

附:

 

----------------------------------------------

需要的jar

1.aspectjrt.jar

2.aspectjweaver.jar

3.cglib-nodep-2.1_3.jar

4.common-annotations.jar

5.commons-logging.jar

6.log4j-1.2.15.jar

7.spring.jar

-----------------------------------------------

 

4
0
分享到:
评论

相关推荐

    JavaEE spring IoC入门案例

    通过学习和实践这个"JavaEE spring IoC入门案例",你将能够理解并掌握如何在Spring框架下实现IoC,从而提高你的JavaEE开发能力。深入理解和运用这些知识点,可以让你在实际项目中编写出更加健壮、易维护的代码。

    JavaEE Spring IoC入门

    总的来说,学习"JavaEE Spring IoC入门"意味着你需要理解Spring如何通过IoC管理对象,掌握XML配置文件的编写,以及如何在Web环境中使用Spring MVC进行开发。此外,还需要了解如何编写测试用例来验证Spring配置的有效...

    Spring Ioc(依赖注入)入门例子--属性注入

    在本例“Spring Ioc(依赖注入)入门例子--属性注入”中,我们将关注如何通过属性注入来管理依赖。 属性注入是指Spring容器将一个对象的属性值设置为另一个对象的引用。这通常用于将服务对象注入到需要使用它们的...

    Spring中IoC的入门实例

    Spring中的IoC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理权交给框架处理,...在实际开发中,Spring提供了更丰富的特性,如自动装配、注解驱动等,进一步简化了对象的管理和依赖注入。

    spring2.5.6注解以及xml简单ioc入门示例

    这个入门示例项目旨在帮助初学者了解和掌握Spring 2.5.6版本中的注解使用和基于XML的IoC配置。 首先,让我们来探讨一下Spring的IoC概念。IoC是一种设计模式,它将对象的创建和管理权交给了容器,而不是由对象自身...

    《partner4java 讲述Spring入门》之第一步:Spring概述与Spring IoC

    《Spring入门:Spring概述与Spring IoC》是针对初学者的一篇教程,旨在引导开发者进入Spring框架的世界。本文将深入探讨Spring的核心概念,特别是Spring的Inversion of Control(IoC,控制反转)特性,以及如何在...

    Spring项目IOC入门案例、Spring项目DI入门案例的代码

    本文将深入探讨Spring的核心概念——依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IOC),并结合提供的"Spring项目IOC入门案例、Spring项目DI入门案例的代码"进行详细解析。...

    Spring 之IoC入门实例

    **Spring之IoC入门实例详解** 在Java世界中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)能力而广受赞誉。IoC是一种设计模式,它将对象的创建和...

    Spring的AOP IOC

    一个机遇Spring3的入门小案例,里面主要简单演示了Spirng配置文件如何配置自动扫描包,控制类、服务类、Dao类如何加注解,被IOC扫描装入容器中。还有AOP例子的演示,有before after afterreturn afterthrow,还有...

    Spring初学者入门教程 PDF带书签高清版

    3. **IoC容器**:详细解释什么是IoC,以及如何通过XML配置或注解实现依赖注入。这部分还会涵盖Bean的生命周期管理,如初始化、销毁方法的定义。 4. **AOP**:深入理解AOP的概念,包括切面、通知、连接点、切点等,...

    《spring framework 2 入门经典》一书的源代码

    《Spring Framework 2 入门经典》是一本深入浅出介绍Spring Framework 2.x版本的书籍,旨在帮助初学者快速掌握这一强大Java企业级应用框架的使用。源代码是学习和理解书中理论知识的重要辅助资源,它包含了书中各个...

    Spring Web MVC入门教程

    使用Spring Web MVC,开发者可以轻松地进行Web层的单元测试,因为它天生集成Spring框架的特性,如依赖注入(IoC)和面向切面编程(AOP)等。同时,Spring Web MVC支持灵活的URL映射策略,能够非常方便地与其他视图技术...

    spring入门代码项目

    在`HelloWorld`项目中,你会看到如何配置Spring IoC(Inversion of Control,控制反转)容器,以及如何使用注解(@Component)来定义一个简单的Bean。同时,还会讲解如何通过@Autowired自动装配Bean依赖,以及如何使用...

    Spring从入门到精通

    《Spring从入门到精通》是一本全面覆盖Spring框架核心概念和技术的教程,旨在帮助初学者快速掌握Spring,并进一步提升有经验的开发者对Spring的理解。在Java企业级开发中,Spring框架以其灵活、强大的功能和易用性,...

    spring核心IOC以及DI

    【Spring核心IOC以及DI】是Spring框架中的关键概念,它们是Spring实现控制反转(Inversion of Control,简称IOC)和依赖注入(Dependency Injection,简称DI)的基石。这两个概念是Spring框架的核心,使得应用程序的...

    一本很不错的关于spring入门的书籍

    这本书籍“一本很不错的关于spring入门的书籍”显然是针对初学者设计的,旨在帮助新手快速掌握Spring的基本概念和核心功能。 Spring框架的核心特性包括: 1. **依赖注入(Dependency Injection,简称DI)**:这是...

    spring入门到精通.pdf

    IoC容器通过XML配置文件或注解来读取组件的定义并创建对象实例。 3. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供了一种实现AOP的方法,允许开发者将关注点如日志、事务管理等从核心业务逻辑...

    Spring框架入门.pdf

    开发者需要对如何通过Spring配置文件或注解来配置和管理Bean的生命周期有一个深入的理解,同时也需要了解Spring提供的各种注解和接口如何在业务逻辑中应用。 Spring框架不仅适用于Web应用的开发,它的模块化特性也...

    Spring 入门代码实例

    **Spring 框架入门与依赖注入详解** Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性,简化了对象的创建和管理,实现了松耦合,使得代码更加灵活和易于测试。...

Global site tag (gtag.js) - Google Analytics