Spring(1)Spring相关概念理解及环境搭建

Spring(一)Spring相关概念理解及环境搭建
Spring是一个开源的控制反转(Ioc)和面向切面(AOP)的容器框架,它的目的主要是简化企业开发。
所谓控制反转就是应用本身不负责依赖对象的创建和维护,依赖对象的创建和维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的反转。
所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。

Spring作用:

  • 降低组件之间的耦合度,实现软件各层之间的解耦;
  • 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务,也不需要处理复杂的事务传播;
  • 容器提供单例模式支持,开发人员不再需要自己编写实现代码;
  • 容器提供AOP技术,利用它可以很容易实现如权限拦截、运行期监控等功能;
  • 容器提供众多辅作类,使用这些类能够加快应用的开发,如:JDBC Template、Hibernate Template;
  • Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。

划分一个应用是否属于轻量级或重量级,主要看它使用了多少服务。对于Spring容器,它提供了很多服务,但这些服务不是默认为应用打开的。应用需要某种服务,还需要指明使用该服务,如果应用使用的服务很少,如:只使用了Spring核心服务,我们可以认为此时应用属于轻量级的,如果应用使用了Spring提供的大部分服务,这时应用就属于重量级。目前EJB容器因为它默认为应用提供EJB规范中所有的功能,所以它属于重量级。

Spring官网

进行Spring开发至少得导入两个jar包:commons-logging.jar、spring.jar

工程目录:

Spring(1)Spring相关概念理解及环境搭建

测试代码

package test.spring.service;

public interface PersonService {

	public abstract void save();

}
package test.spring.service.impl;

import test.spring.service.PersonService;

public class PersonServiceBean implements PersonService {

	@Override
	public void save(){
		System.out.println("=============");
	}
}
配置文件beans.xml

<?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">

	<!-- 这时候这个bean就可以由spring帮我们创建和维护,用到时只需从spring容器中获取 -->
	<bean id="personService" class="test.spring.service.impl.PersonServiceBean"></bean>

</beans>
package test.spring.jnit;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import test.spring.service.PersonService;

public class SpringTest {

	@Test
	public void testInstanceSpring() {
		// ApplicationContext applicationContext = new
		// ClassPathXmlApplicationContext(
		// new String[] { "beans.xml" });
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"beans.xml");
		PersonService personService = (PersonService) applicationContext
				.getBean("personService");// 得到的是Object,需进行转换
		personService.save();
	}

}


版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请注明出处:http://blog.csdn.net/lindonglian