Spring 的核心是轻量级的容器,它实现了IoC 容器、非侵入性的框架,并提供AOP 概念的实现方式,提供对持久层、事务的支持,提供MVC Web 框架的实现,并对一些常用的企业服务A PI提供一致的模型封装,是一个全方位的应用程序框架,另外,Spring 也提供了对现有框架(Struts、JSF、Hibernate 等)的整合方案。
一.IOC依赖注入:
Spring通过在xml文件中配置<bean />标签来设置相应的bean,然后可以在程序中使用ApplicationContext借口来读取已经配置的bean,并且可以在xml中配置注入方式来实现IOC(依赖注入):
上面就在xml配置了一个bean,并且使用set方法注入两个属性userName,salary.在程序中可以使用:












来获得HelloBean,里面的两个属性已经通过spring的ioc设置,可以直接使用.




在xml中,如果要注入list,map,set以及proerties对象,则可以使用以下标签:
List:














Map:
































Set:




























在定义bean标签的时候,还可以指定init-method=”bean类中的某个方法名”值,他将会在bean的属性被注入以后调用,可以在里面检查值是否正确或者修改属性值.
Spring还提供了多个接口来方便使用者在bean加载完成之后(之前)来完成一系列的动作:
BeanFactoryPostProcessor:
postProcessBeanFactory:
在bean工厂工作之前调用,这里可以读取到有关xml中定义的bean的信息,如定义的bean的个数等.
BeanPostProcessor:
postProcessAfterInitialization:
在调用init-method之后调用的回调方法,方法必须返回参数中传入的经过修改的bean对象.
postProcessBeforeInitialization:
在调用init-method之前调用的回调方法,方法必须返回参数中传入的经过修改的bean对象.
PropertyEditorSupport:
setAsText等各个setAs方法:
在设置属性值之前调用,用来对值进行加工处理(比如大小写等),处理完毕以后必须调用setValue()方法把修改过的值传回去.
以上方法都只需要在xml中以普通bean的方式声明即可,spring会自动对所有bean运用。