今天开始重新学习Spring,学习笔记纪录于此。
第一部分,IoC容器
1.IoC(Inversion of Control)反转注入是Spring的核心部分,意在通过配置管理系统中运行的Java Bean,包括管理Bean的生命周期,实现系统组建之间的松耦合。
2.ApplicationContext是BeanFactory的父类,在原本BeanFactory的基础上增加了AOP的集成、国际化(I18N)、事件处理、系统层上下文控制等功能。
3.ApplicationContext有多种配置方式,最常用也是最流行的方式是使用xml文件进行配置,例如
ApplicationContext context = new ClassPathXmlApplicationContext("bean-service.xml");
BeanFactory factory = (BeanFactory)context;
Object obj = factory.getBean("kingswood.spring.test.service.UserService");
4.在实际的开发中,我们可以定义多个Bean配置文件,然后将这些文件统一导入到一个配置文件中,这个功能在分模块开发和团队协作中非常方便。
<beans>
<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>
<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>
</beans>
5.我们可以为Bean设置别名,在代码调用中,只需要输入别名就可以查找到响应的JavaBean,例如
<alias name="kingswood.spring.test.service.UserService" alias="userService"/>
6.如果一个Bean的初始化过程需要使用到另外一个Class,则需要将这个Class注入进来,如
<bean id="kingswood.spring.test.service.IUserService" class="kingswood.spring.test.service.UserService">
<constructor-arg>
<bean class="kingswood.spring.test.service.PrivilegeService"></bean>
</constructor-arg>
</bean>
7.当Bean的构造函数存在一个或多个常量参数时,可以在配置文件中定义参数值,如
<bean id="kingswood.spring.test.service.IGroupService" class="kingswood.spring.test.service.GroupService">
<constructor-arg type="int" value="25" />
<constructor-arg type="java.lang.String" value="Kingswood" />
</bean>
8.我们可以i定义一个Bean的初始化方法和销毁方法,如
<bean id="kingswood.spring.test.service.SingletonService" class="kingswood.spring.test.service.SingletonService"
lazy-init="false" init-method="setup" destroy-method="cleanUp"></bean>
我们也可以在Beans节点上设置所有Bean的Init和Destroy方法,如
<beans default-init-method="init">