Spring学习手记
来源:互联网 发布:cs1.6弹道优化参数 编辑:程序博客网 时间:2024/06/03 12:48
Spring概述
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架:·从大小与开销两方面而言Spring都是轻量级的·通过控制反转(IoC)的技术达到松耦合的目的·提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统服进行内聚性的开发·包含并管理应用对象的配置和生命周期,这个意义上是一种容器·将简单的组件配置、组合成为复杂的应用,这个意义上是框架
Spring作用
·容器·提供了对多种技术的支持,如(JMS,MQ支持,UnitTest等)·AOP(事物,日志等)·提供了众多方便应用的辅助类(JDBC Template等)·对主流应用框架(Hibernate等)提供了良好的支持
Spring适用范围
·构建企业应用(SpringMVC+Spring+Hibernate/ibatis)·单独使用Bean容器(Bean管理)·单独使用AOP进行切面处理
IoC(控制反转)
控制权的转让,应用本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护,而具体被反转的是获得依赖对象的过程,控制被反转之后,获得依赖对象的过程由自身管理变为了由IoC容器主动注入,简单的来说,就是不需要我们自己去实例化所需要的对象,而是通过Spring的外部容器来帮我们去创建,需要使用的时候,直接从容器中取出来就好了。
DI(依赖注入)
所谓依赖注入,就是由IoC容器在运行期间,动态的将某种依赖关系注入到对象之中,也就是说在创建对象的同时,建立起对象与对象之间的依赖关系。
Spring配置文件详解
applicationContext.xml:这是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。
<?xml version="1.0" encoding="UTF-8"?><beans|---整个配置文件的根节点,包含一个或多个的Bean元素xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"|---以上两条为基本的命名空间定义xmlns:aop="http://www.springframework.org/schema/aop"|---启用AOP功能时的命名空间xmlns:tx="http://www.springframework.org/schema/tx"|---启用声明事物时的命名空间xmlns:context="http://www.springframework.org/schema/context"|---启用自动扫描或注解装配时的命名空间xmlns:task="http://www.springframework.org/schema/task"|---启用定时任务时的命名空间xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd"|---与上述命名空间定义配套的schema定义文件的装载路径><!-- 开启注解处理器 --><context:annotation-config/><!-- 开启组件自动扫描,扫描路径由base-package属性指定 --><context:component-scan base-package="com.mogon.test"/><!-- 开启注解声明定时任务 --><task:annotation-driven/><!-- 基于@AspectJ切面的注解处理器 --><aop:aspectj-autoproxy/><!-- 使用class属性指定类的默认构造方法创建一个实例Bean,名称由id属性指定 --><bean id="Bean实例名称" class="Bean类全名"/><!-- scope属性为prototype时表示每次将生成新的实例,即原型模式 --><bean id="Bean实例名称" class="Bean类全名" scope="prototype"/><!-- init-method属性用于指定对象实例化后要调用的初始化方法 --><!-- destroy-method属性用于指定对象在销毁时要调用的方法 --><bean id="Bean实例名称" class="Bean类全名" init-method="方法名" destroy-method="方法名"/><!-- property标签用于对Bean实例中的属性进行赋值--><bean id="Bean实例名称" class="Bean类全名"> <!-- 对于基本数据类型的值可由value属性直接指定 --> <property name="Bean类中的属性名称" value="直接指定属性值"/> <!-- 而ref则表示对其他Bean实例的引用 --> <property name="Bean类中的属性名称" ref="要引用的Bean名称"/> <property name="Bean类中的属性名称"> <!-- 创建一个内部匿名Bean实例赋值给指定的属性,该匿名Bean实例无法被外界访问 --> <bean class="Bean类全名"/> </property> <property name="Bean类中的Set类型属性名称"> <!-- set标签用于创建一个Set类型的实例赋值给指定的Set类型属性,Set实例中的元素通过value或ref子标签指定。 --> <set> <!-- 对于基本数据类型的元素可由value标签生成 --> <value>set中的元素</value> <!-- 如果需要引用其他Bean实例作为Set元素的话,可由ref标签指定 --> <ref bean="要引用的Bean的名称"/> </set> </property> <property name="Bean类中的List类型属性名称"> <!-- List标签用于创建一个List类型的实例赋值给指定的List类型属性,List实例中的元素通过value或ref子标签指定。 --> <list> <!-- 对于基本数据类型的元素可由value标签生成 --> <value>List中的元素</value> <!-- 如果需要引用其他Bean实例作为List元素的话,可由ref标签指定 --> <ref bean="要引用的Bean的名称"/> </list> </property> <property name="Bean类中的Map类型属性名称"> <!-- Map标签用于创建一个Map类型的实例赋值给指定的Map类型属性,Map实例中的元素通过entry子标签指定。 --> <map> <!-- Map元素的键由entry标签的key属性直接指定,值则可由value或ref子标签指定 --> <entry key="map元素的key"> <!-- 对于基本数据类型的元素可由value标签生成 --> <value>map元素的value</value> </entry> <entry key="map元素的key"> <!-- 如果需要引用其他Bean实例的话,可由ref标签指定 --> <ref bean="要引用的Bean名称"/> </entry> </map> </property> <property name="Bean类中的Properties类型属性名称"> <!-- 创建一个Properties类型的实例赋值给指定的Properties类型属性 --> <props> <!-- Properties实例中的属性元素由prop标签生成,属性项元素的键由key属性指定,属性项元素的值可直接放置在prop标签体中 --> <prop key="properties元素的key">properties元素的value</prop> </props> </property> <property name="Bean类中要初始化为null的属性名称"> <!-- null标签用于给需要赋null值的属性进行赋null值 --> <null/> </property></bean>
0 0
- Spring学习手记
- Spring MVC 学习手记(1)-Hello World
- Spring MVC 学习手记(2)- @RequestMapping注解
- Spring MVC 学习手记(3)- HiddenHttpMethodFilter 过滤器
- Spring MVC 学习手记(4)- @RequestParam 注解
- Hibernate学习手记1
- Delphi学习手记
- Struts学习手记
- Hibernate学习手记(一)
- EAS 5.2 学习手记
- Hibernate学习手记(一)
- ace 学习手记 20050829
- sql server2000学习手记
- ireport & jasperreports 学习手记
- JavaScript 学习手记
- ASP学习手记
- ASP.NET 学习手记
- JSP 学习手记
- opencv-python人眼识别图像处理基础
- Android——可修改字体大小和指示器长度的XTabLayout
- 【备忘】传智播客-Java就业班 视频教程下载
- 公司内部SQL联合查询
- Android:控件布局(相对布局)RelativeLayout
- Spring学习手记
- MyBatis的一级缓存实现详解 及使用注意事项
- Android NDK将C++/C编译成so文件
- 冒泡排序和选择排序
- 为什么Mysql使用多线程,而Oracle使用多进程
- Base64系列第一篇 Base64介绍
- 学html5做app开发可以从哪儿学起
- 网络编程五:生成SSL证书
- 排名前10位的Windows隐藏秘密的命令行和各种小窍门 1