`
haoran_10
  • 浏览: 436541 次
  • 性别: 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
分享到:
评论

相关推荐

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

    spring2.5.6注解以及xml两个简单ioc入门示例项目,导入项目可运行。 同时带有spring-framework-2.5.6-with-docs.zip包

    基于Maven构建的Spring IoC源码实例

    Spring IoC 入门实例,包括了多种依赖注入方式,适合Spring初学者学习使用。实例里有详细的注释,一看就懂。

    Spring的AOP IOC

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

    模拟Spring IoC

    自己写了一个Spring IoC的模拟,有详细注释,可供刚入门学习spring的童鞋加深理解.

    Android注解【IOC】框架demo

    一个简单的Android IOC demo,Android注解的入门代码。从此告别Activity中的每一个控件findViewById...

    spring aop注解版

    Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,AOP的原理就是java的动态代理机制

    Spring高级之注解驱动开发视频教程

    Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间的各个部分更加独立,达到统一调用执行,使后期维护更加的方便。 SpringMVC本身是...

    【2019版】Spring4.3入门视频课程

    本课程以通俗易懂的方式讲解Spring核心技术,适合初学者的教程,让你少走...IOC注解 AOP注解 四、Spring整合 Spring整合Web Spring整合JDBC Spring整合MyBatis 教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

    springtest.rar

    spring IOC入门实例 maven构建,@Service, @Autowired @Resource 注解 使用和区别,可在单元测试 的Test 方法中直接运行,

    spring的各种jar包.zip

    spring的各种jar包:里面包括JDBC模板使用的jar包,spring的IOC入门jar包,spring的注解jar包,Spring和AspectJ整合的包和spring-test-4.2.4.RELEASE的jar

    千锋JavaEE精讲之Spring框架实战教程

    通过Spring的入门程序介绍了Spring的IoC和DI的概念,介绍了Spring的基本模块。详细介绍了对象创建的细节和依赖注入的几种方式;介绍了如何使用注解完成Spring的相关 资源太大,传百度网盘了,链接在附件中,有需要...

    spring.net中文手册在线版

    IoC快速入门 25.1.简介 25.2.Movie Finder 25.2.1.开始建立MovieFinder应用程序 25.2.2.第一个对象定义 25.2.3.属性注入 25.2.4.构造器参数注入 25.2.5.总结 25.2.6.日志 25.3.应用程序上下文和IMessageSource接口 ...

    java视频教程:spring框架精讲附加实战项目练习

    通过Spring的入门程序介绍了Spring的 IoC 和 DI 的概念,介绍了Spring的基本模块。详细介绍了对象创建的细节和依赖注入的几种方式;介绍了如何使用注解完成Spring的相关功能;介绍了如何借助于Spring搭建JUnit测试...

    spring 入门例子学习文档

    spring入门的实例介绍,包括aspectJ,Ioc,持久化等技术。分注解模式,和配置模式。非常适合初学者。

    Spring框架(详细 一).md

    本篇博文适合零基础的同学...Ioc 入门案例; Di 入门案例; 核心API介绍; 装配bean基于xml---实例化方式; bean种类; bean作用域; 生命周期; 属性注入--setter方法 p命名空间; sqel; 集合注入; 装配bean基于注解;

    Spring攻略(第二版 中文高清版).part1

    1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 ...

    Spring.3.x企业应用开发实战(完整版).part2

    4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命过程方法 4.11 基于Java类的配置 4.11.1 使用Java类提供Bean定义信息 4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 ...

    Spring攻略(第二版 中文高清版).part2

    1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 ...

    Spring3.x企业应用开发实战(完整版) part1

    4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命过程方法 4.11 基于Java类的配置 4.11.1 使用Java类提供Bean定义信息 4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 ...

    Spring应用篇.xmind

    主要梳理了Spring的基础和高级应用的知识,包括整个Spring的体系结构介绍、IOC,DI配置使用,包括纯XML,注解和XML混合,纯注解三种配置方式,还有Spring的AOP,整个Junnit,事务等知识点的梳理。

Global site tag (gtag.js) - Google Analytics