问题?spring的定义及作用、spring的环境搭建
一、spring的定义及作用
1、spring由Rod Johnson创建的一个开源框架,它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
2、Spring的核心是控制反转(IoC)和面向切面(AOP)
Spring的控制反转:把对象的创建、初始化、销毁等工作交给spring容器来做 。
Spring的面向切面:
二、spring环境的搭建
1、准备阶段:
jar包的准备:可以放入web应用下WebRoot/WEB-INF/lib下,并且BuildPath下。点击下载jar包链接
配置文件的准备:applicationContext.xml
在spring开发手册可以找打,或者去spring核心包中去找,也可以找到。
<?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"> <!-- id:标识符 class:相应的对象类,放入容器中 alias:别名,可写可不写,就是另外取一个名字 --> <!-- 这是第一种创建对象的方式:利用构造方法 --> <bean id="hello" class="cn.itcast.sh.spring.ioc.HelloWord"></bean> <alias name="hello" alias="王三"/> <!-- 这是第二种创建对象的方式:利用factory-method,静态工厂方法 --> <bean id="helloFactory" class="cn.itcast.sh.spring.ioc.HelloWordFactory" factory-method="getInstance"></bean> <!-- 这是第三种创建对象的方式:使用实例工厂方法实例化 --> <!-- <bean id="heillLocator" class="cn.itcast.sh.spring.ioc.HelloWordLocator" factory-bean="heillLocator" factory-method="getInstance"></bean> --> <!-- 默认情况下是applicationContext.xml文件。可以建立很多xml文件将其引入 --> <import resource=""/> </beans>
然后创建测试类:
package cn.itcast.sh.spring.ioc.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.sh.spring.ioc.HelloWord; import cn.itcast.sh.spring.ioc.HelloWordFactory; public class IocTest { /** * spring创建对象的两种方式 * */ //第一种:调用默认的构造方法进行创建 @Test public void IocT1(){ /** * 1.启动spring容器 * 2.从容器中拿出对象 * 3.然后由对象执行相应的操作 * */ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWord helloWord = (HelloWord) context.getBean("王三");//取的是别名 helloWord.hello(); } //利用静态工厂来创建对象 @Test public void IocT2(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWord factory = (HelloWord) context.getBean("helloFactory"); factory.hello(); } //利用实例工厂来创建对象 @Test public void IocT3(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWordFactory factory = (HelloWordFactory) context.getBean("heillLocator"); factory.getInstance(); } }
用单元测试:看看是否能用容器建立的对象,是否能够正常的使用