问题?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注解的默认编码是iso-8859-1
在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();
}
}
用单元测试:看看是否能用容器建立的对象,是否能够正常的使用