1.Spring简介:
Spring为企业应用的开发提供了一个轻量级的解决方案。包括:基于依赖注入的核心机制、基于AOP的声明式事务、与多种持久层技术的整合,以及优秀的Web MVC框架。
下图是Spring的架构图:
2 Spring入门:
2.1 Spring 的下载和安装:
1. 登陆http://repo.springsource.org/libs-release-local/ 下载, org ->springframework-> spring 下载 spring-framework-4.0.4.RELEASE-dist.zip 。
2. 解压的目录结构:
docs:各种文档,开发指南和API
libs: class文件的jar包;source文件的压缩包;API文档的压缩包
schemas:包含spring各种配置文件的XML Schema文档。
readme.txt、notice.txt、licence.txt等说明文件。
3. Spring依赖common-logging的jar包,需要下载该jar包。
4. 将libs下的jar包和common-logging的jar包都添加到 java Build Path。
2.2 使用Spring管理Bean
Spring的核心容器就是一个超级大工厂,把容器中的一切对象称为Bean。Spring对Bean没有任何要求,只要是一个java类,Spring就将其当做Bean处理。
如下2个简单类:Axe和Person:
Axe.java:
package com.pmpa.ch01;
public class Axe {
public String chop(){
return "砍柴";
}
}
Person.java:
package com.pmpa.ch01;
public class Person {
private Axe axe;
public Axe getAxe() {
return axe;
}
public void setAxe(Axe axe) {
this.axe = axe;
}
public void useAxe()
{
System.out.println("打算去弄柴火");
//调用axe的chop方法,表示Person类依赖于Axe类。
System.out.println(axe.chop());
}
}
A对象需要调用B对象的方法的情形,称为依赖。
beans.xml(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.xsd">
<bean id="axe" class="com.pmpa.ch01.Axe">
</bean>
<bean id="person" class="com.pmpa.ch01.Person">
<property name = "axe" ref="axe"></property>
</bean>
</beans>
Spring使用XML配置文件来管理容器中的Bean。配置文件中的<bean .../>元素默认以反射方式来调用该类无参的构造器。
<property.../>子元素通常用于作为<bean.../>的子元素,它驱动spring在底层以反射执行一次setter方法。其中name属性值决定执行哪个setter,而value(以String做参数)或ref(以其他Bean做参数)决定执行setter方法的传入参数。
<bean.../>驱动spring调用构造器创建对象;<property.../>子元素驱动Spring执行setter方法,这两步是先后执行的,中间几乎没有任何间隔。
<?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.xsd">
<bean id="axe" class="com.pmpa.ch01.Axe">
</bean>
<bean id="person" class="com.pmpa.ch01.Person">
<property name = "axe" ref="axe"></property>
</bean>
</beans>
接下来,通过Spring容器来访问容器中的Bean,ApplicationContext是Spring最常用的接口,有2个实现类:
(1)ClassPathXmlApplicationContext:在类加载路径下搜索配置文件,常用的方式。
(2)FileSystemXmlApplicationContext:在文件系统路径下搜索配置文件。
有2种获取Bean的方式:
Object getBean(String name):通过Bean id来获取指定Bean,获取Bean后需要强制类型转换。
<T> T getBean(String name,Class<T> requiredType):通过Bean id来获取指定Bean,但是带一个泛型参数。
下面是最终测试类:BeanTest.java
package com.pmpa.ch01;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class BeanTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/beans.xml");
Person ps = ctx.getBean("person", Person.class);
ps.useAxe();
}
}
运行结果:
打算去弄柴火
砍柴
转载于:https://blog.51cto.com/6216083/1830612