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