Spring4.0学习笔记002——Spring应用初识
Posted yfyzwr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring4.0学习笔记002——Spring应用初识相关的知识,希望对你有一定的参考价值。
1. 一般应用的组织方式
- 新建名为
com.yfyzwr.spring.beans
的package,在package中添加名为HelloWorld
的java类。 在HelloWorld类中实现如下代码。
public class HelloWorld private String name; public HelloWorld() System.out.println("HelloWorld Constructor"); public void setName(String name) System.out.println("Set 'name' Property"); this.name = name; public void sayHello() System.out.println("hello: " + name);
添加程序的Main方法类。
public class AppEntry public static void main(String[] args) //创建HelloWorld对象 HelloWorld helloWorld = new HelloWorld(); //给name属性赋值 helloWorld.setName("World"); //调用sayHello方法 helloWorld.sayHello();
- 运行即可获得期望的输出结果。
2. Spring应用的组织方式
- 右键点击项目的src目录,依次点击【New】->【Other】->【Spring】->【Spring bean Configuration File】按钮,输入
ApplicationContext
的配置文件名。 修改得到的名为
ApplicationContext.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 --> <bean id="HelloWorld" class="com.yfyzwr.spring.beans.HelloWorld"> <property name="name" value="World"></property> </bean> </beans>
修改Main方法的实现。
public class AppEntry public static void main(String[] args) //创建Spring容器对象 ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml"); //从容器中获取bean实例对象 HelloWorld helloWorld = (HelloWorld)context.getBean("HelloWorld"); //调用sayHello方法 helloWorld.sayHello();
- 运行即可获得与前述一般应用相同的输出结果。
如果Main方法中只用“创建Spring容器对象”语句,那输出结果如何呢?
从输出结果可以发现,HelloWord的构造函数和属性name的set函数会被调用。说明Spring在加载xml配置文件的时候,会调用bean类的构造函数、property中成员变量对应的set函数。
这样也就要求,添加的“property属性名字”是与类的成员变量相对应的。既然在xml中为该成员变量指定了对应的value值,那么就需要在该类中为该成员变量准备对应的set函数。
3. Spring应用的简单说明
3-1. 容器的两种实现方式
Spring IOC容器在读取Bean配置、创建Bean实例之前, 必须对容器进行实例化。只有在容器实例化后, 才可以从IOC容器里获取Bean实例并使用。
Spring提供了两种类型的IOC容器实现(不管何种方式,xml配置文件都相同):
- BeanFactory:IOC容器的基本实现,它是 Spring 框架的基础设施,面向 Spring 本身。
- ApplicationContext:提供了更多的高级特性(是BeanFactory的子接口),ApplicationContext 面向使用Spring框架的开发者。所以几乎所有的应用场合都是直接使用ApplicationContext而非底层的BeanFactory接口。
3-2. ApplicationContext的两种实现类
利用eclipse的 Ctrl + t
快捷键,我们可以查看ApplicationContext接口的继承结构。
从上图可以得到如下信息:
ApplicationContext接口有两个实现类,可以利用此实现类来实例化容器对象。
- ClassPathXmlApplicationContext:从 类路径下加载配置文件
- FileSystemXmlApplicationContext:从文件系统中加载配置文件
ConfigurableApplicationContext接口扩展于ApplicationContext接口,利用eclipse的
Ctrl + o
快捷键可以查看其结构, 该接口新增加的refresh() 和 close()让方法,可以使得ApplicationContext 具有启动、刷新和关闭上下文的能力。
以上是关于Spring4.0学习笔记002——Spring应用初识的主要内容,如果未能解决你的问题,请参考以下文章
Spring4.0学习笔记 —— 通过FactoryBean配置Bean
Spring4.0学习笔记001——搭建Spring开发环境
Spring4.0学习笔记008——AOP的配置(基于注解)