温故知新:spring_01IOC整体感受

IOC(inverse of control)控制反转,是spring提供的非常优秀的一种特性,这种特性使得在项目中,所有对象的实例都交由spring去创建,管理。为什么要这么做呢,假使我们脱离spring,在开发的过程中,需要新建实例的时候自己去new,那么组件之间的耦合度会非常高,在一个业务处理类中,某个对象就写死引用某个实例,一旦有较大的业务变更,需要修改的地方可能会多的不敢想象,如果文档,代码和注释的维护较差,那么业务变更简直就是噩梦。spring的IOC特性就助力实现了“高内聚,低耦合”的这种设计理念。
记录一下平时在使用spring时的一些技巧和心得,先说明一下测试环境。

环境如下
系统:64位win7


测试环境:



先从一个helloworld的简单案例开始吧
新建一个maven项目,选择


其实不论使用哪个框架技术,都无非三步走,import,config,run,首先,我们import
因为使用maven来管理项目,所以直接添加spring的依赖到pom.xml
 1         <dependency>
 2             <groupId>org.springframework</groupId>
 3             <artifactId>spring-core</artifactId>
 4             <version>3.0.5.RELEASE</version>
 5         </dependency>
 6 
 7         <dependency>
 8             <groupId>org.springframework</groupId>
 9             <artifactId>spring-context</artifactId>
10             <version>3.0.5.RELEASE</version>
11         </dependency>
之后,我们开始config,作为一个基本IOC演示,只需要定义工厂的配置。定义一个beans.xml文件,置于src下。其中bean标签就是定义beanId和待注入对象实例之间的映射。
就是“用这个id取对象实例,你会取到class的对象实例”
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://www.springframework.org/schema/beans 
5                         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
6 
7     <bean id="helloSpring" class="demo.model.Demo"/>
8 
9 </beans>
演示类
 1 package demo.model;
 2 
 3 public class Demo {
 4     
 5     public Demo() {
 6     }
 7 
 8     public void hello(){
 9         System.out.println("hello");
10     }
11 }
12 
测试类
 1 package org.duyt.test;
 2 
 3 import org.duyt.model.Demo;
 4 import org.junit.Test;
 5 import org.springframework.beans.factory.BeanFactory;
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;
 7 
 8 public class SpringDemo {
 9 
10     //读入指定的工厂配置文件到spring的容器,文件名可自定义
11     private BeanFactory factory = new ClassPathXmlApplicationContext("beans.xml");
12     
13     @Test
14     public void test(){
15         //根据bean的key获取对象的实例
16         Demo d = (Demo) factory.getBean("helloSpring");
17         //或者直接使用重载的getBean方法,设定好需要返回的类型
18         //Demo dd =  factory.getBean("helloSpring", Demo.class);
19         d.hello();
20         //dd.hello();
21     }
22     
23 }
24 
以上,就是spingIOC最简易的使用。

posted on 2014-11-03 17:19 都较瘦 阅读(131) 评论(0)  编辑  收藏 所属分类: containerFramework


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

博客定位:囿于目前的水平,博客定位在记录自己的学习心得和随手的练习

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜