首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring3.x课程(一) Spring及Spring IoC介绍

2013-03-22 
Spring3.x教程(一) Spring及Spring IoC介绍一、Spring是什么通常说的Spring其实指的是Spring Framework,它

Spring3.x教程(一) Spring及Spring IoC介绍
一、Spring是什么通常说的Spring其实指的是Spring Framework,它是Spring下的一个子项目,Spring围绕Spring Framework这个核心项目开发了大量其他项目,比如Spring Security,Spring Data,Spring WebFlow等等。Spring是为简化Java EE开发而生,而在Java EE中使用最多的就是Spring Framework,接下来我们主要就是学习Spring Framework。Spring Framework包括他的核心解决方案IoC容器、Spring AOP。另外,还有对Web、数据访问层的支持。下面是Spring Framework架构图:Spring3.x课程(一) Spring及Spring IoC介绍
Spring3.x课程(一) Spring及Spring IoC介绍
二、Spring IoC容器Spring IoC(Inversion of Control,控制反转)是Spring Framework的最核心的部分。所谓控制反转,是指通过使用IoC容器对象依赖关系的管理被反转了,也就是说,对象之间的依赖关系由IoC容器进行管理,并且由Ioc容器通过依赖注入(DI,Dependency Injection)的方式来完成对象的注入。 在使用Spring的开发中,我们需要将所有的类在Spring的IoC容器中进行注册,告诉Spring你是什么,你需要什么,然后IoC容器会在你需要哪个对象时为你创建这个对象以及该对象依赖的其他对象实例(这就是依赖注入)。这些类的创建、销毁都会交由IoC容器来管理,而不再由引用它的对象维护。将以前的“对象-对象”的依赖模式转变为了“对象-IoC容器-对象”的依赖模式。 Spring提供了两种注册IoC容器的方式:XML方式和注解的方式。 三、Spring IoC的XML配置1、添加Spring基本依赖包

aopalliance-1.0.jarcommons-logging-1.1.1.jarspring-aop-3.2.0.RELEASE.jarspring-beans-3.2.0.RELEASE.jarspring-context-3.2.0.RELEASE.jarspring-core-3.2.0.RELEASE.jarspring-expression-3.2.0.RELEASE.jar
2、添加Spring配置文件applicationContext.xml
Name is :boyaUser name is :boya 四、Spring IoC注解Spring 的依赖配置方式与 Spring 框架的内核自身是松耦合设计的。然而,直到 Spring 3.0 以前,使用 XML 进行依赖配置几乎是唯一的选择。Spring 3.0 的出现改变了这一状况,它提供了一系列的针对依赖注入的注解,这使得 Spring IoC 在 XML 文件之外多了一种可行的选择。下面介绍如何使用这些注解进行依赖配置的管理。 我将注解分为两类,第一类用于属性装配,第二类用于类的注册。
属性装配使用的注解一般有两种,分别是Autowired、Resource。@Autowired1、@Autowired默认按照类型匹配的方式(byType)进行注入3、@Autowired注解可以用于成员变量、setter方法、构造器函数等 4、使用@Autowired注解须有且仅有一个与之匹配的Bean,当找不到匹配的 Bean 或者存在多个匹配的Bean时,Spring 容器将抛出异常 5、Spring 允许我们通过 @Qualifier 注释指定注入 Bean 的名称。@Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了 @Resource 1、@Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,@Resource 默认按 byName 自动注入罢了2、@Resource 有两个属性,分别是 name 和 type,Spring 将 @Resource 注释的 name 属性解析为 Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。
需要将某个类在IoC容器注册时,可以使用@Component、@Repository、@Service和 @Controller @Component1、@Component是所有受Spring管理组件的通用形式,而@Repository、@Service和 @Controller则是@Component的细化, 用来表示更具体的用例(分别对应了持久化层、服务层和表现层)2、使用@Component注解定义的Bean,默认的名称(id)是小写开头的非限定类名。如UserDao类定义的Bean名称就是userDao。你也可以指定Bean的名称: @Component("abc")
下面,我们把上面的示例改为注解配置的形式。首先,需要修改配置文件applicationContext.xml,如下:
Name is :boyaUser name is :boya Spring Ioc XML配置示例代码:http://download.csdn.net/detail/boyazuo/5165204Spring IoC注解配置示例代码:http://download.csdn.net/detail/boyazuo/5165191 

热点排行