spring一些简单小注意知识点
Spring 配置详解
<!-- Bean元素:使用该元素描述需要spring容器管理的对象
class属性:被管理对象的完整类名.
name属性:给被管理的对象起个名字.获得对象时根据该名称获得对象.
可以重复.可以使用特殊字符.
id属性: 与name属性一模一样.
名称不可重复.不能使用特殊字符.
结论: 尽量使用name属性.
-->
<bean name="student" class="com.lsk.Student" ></bean>
<!--
可以通过import属性导入其他spring配置文件
<import resource="路径/*.xml"/>
-->
Spring 框架的思想
(1)、IOC:Inverse Of Control,即控制反转,将对象创建的方式交给了 Spring 容器;
(2)、DI:Dependency Injection,即依赖注入,IOC 的实现需要 DI 支持。
Spring的两种容器
(1)、Spring BeanFactory 容器
它是最简单的容器,给 DI 提供了基本的支持,它用 org.springframework.beans.factory.BeanFactory 接口来定义。BeanFactory 或者相关的接口,如 BeanFactoryAware,InitializingBean,DisposableBean,在 Spring 中仍然存在具有大量的与 Spring 整合的第三方框架的反向兼容性的目的。
在 Spring 中,有大量对 BeanFactory 接口的实现。其中,最常被使用的是 XmlBeanFactory 类。这个容器从一个 XML 文件中读取配置元数据,由这些元数据来生成一个被配置化的系统或者应用。
在资源宝贵的移动设备或者基于 applet 的应用当中, BeanFactory 会被优先选择。否则,一般使用的是 ApplicationContext,除非你有更好的理由选择 BeanFactory。
(2)、Spring ApplicationContext 容器
该容器添加了更多的企业特定的功能,例如从一个属性文件中解析文本信息的能力,发布应用程序事件给感兴趣的事件监听器的能力。该容器是由 org.springframework.context.ApplicationContext 接口定义。
ApplicationContext 包含 BeanFactory 所有的功能,一般情况下,相对于 BeanFactory,ApplicationContext 会被推荐使用。
最常被使用的 ApplicationContext 接口实现(类):
-
FileSystemXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你需要提供给构造器 XML 文件的完整路径
-
ClassPathXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你不需要提供 XML 文件的完整路径,只需正确配置 CLASSPATH 环境变量即可,因为,容器会从 CLASSPATH 中搜索 bean 配置文件。
- WebXmlApplicationContext:该容器会在一个 web 应用程序的范围内加载在 XML 文件中已被定义的 bean。
Spring 两种注入方式
(1)、set方法注入:
<bean name="
student
" class="com.lsk.Student" >
<!--值类型注入: 为stu对象中名为name的属性注入"孔乙己"作为值 -->
<property name="name" value="孔乙己" ></property>
<property name="age" value="22" ></property>
<property name="grade" value="大三" ></property>
<property name="rang" value="1" ></property>
<!-- 引用类型注入: 为course属性注入下方配置的course对象 -->
<property name="course" ref="course" ></property>
</bean>
<!-- 将course对象配置到容器中 -->
<bean name="course" class="com.lsk.Course" >
<property name="name" value="Java开发" ></property>
<property name="page" value="112" ></property>
</bean>
(2)、构造函数注入:
<bean name="stu1" class="com.spring.bean.Student" >
<!-- name属性: 构造函数的参数名 -->
<!-- index属性: 构造函数的参数索引 -->
<!-- type属性: 构造函数的参数类型-->
<constructor-arg name="name" index="0" type="java.lang.Integer" value="compasser" ></constructor-arg>
<constructor-arg name="course" ref="course" index="1" ></constructor-arg>
</bean>
作者:Eric Li
出处:http://www.cnblogs.com/ericli-ericli/
除转载文章外,随笔版权归作者和博客园所有,欢迎转载,转载请标明出处。
如果您觉得本篇博文对您有所收获,觉得作者还算用心,请点击右下角的 [推荐],谢谢!