1. Spring介绍
Spring是轻量级的J2EE应用程序框架。Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供一站式的框架整合方案 。
Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架够新够好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架 。
spring 的优点:
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提供的众多服务,如事务管理,消息服务等
3.容器提供单例模式支持
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring属于低侵入式设计,代码的污染极低
8.独立于各种应用服务器
9.spring的DI机制降低了业务对象替换的复杂性
10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部
2.ioc
3. AOP介绍
4. 环境配置
spring的官网上不容易找到spring的zip包,从这里可以下载到:http://repo.spring.io/release/org/springframework/spring/ 。另外,spring需要一些依赖包,但这些依赖包没有打包在spring的zip中,需要自己下载。包括使用IoC功能时所需要的commons-logging.jar,使用AOP功能时所需要的aopalliance.jar,aspectj-1.7.4.jar,aspectjrt.jar,aspectjweaver.jar。这些自己在网上找一下,加到用户库里就可以了。
新建一个web工程。file->new->web project,给工程取名为Spring_Test。将下载到的spring包中的.jar文件复制到Spring_Test/WebRoot/WEB-INF/lib下。功能每个jar包都有一个doc.jar和src.jar,这两种包可以等需要的看doc和源代码的时候再加入。
1 需要的jar包和文件结构
jar包下载地址:http://pan.baidu.com/s/1sjDbzrR
2 bean.xml配置文件,放在src目录下
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://www.springframework.org/schema/beans" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 6 <bean id="person" class="com.test.bean.Person"> 7 <property name="name" value="xingoo"/> 8 <property name="age" value="12"/> 9 </bean> 10 </beans>
3 Person类,这里使用的是set设置注入方式
package com.test.bean; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void info(){ System.out.println("一起来吃麻辣烫!"); System.out.println("name:"+getName()+" age:"+getAge()); } }
4 test类
package testSpring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.test.bean.Person; public class test { public static void main(String[] args){ ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容 Person p = ctx.getBean("person",Person.class);//创建bean的引用对象 p.info(); } }
5 执行结果