Spring基础使用(一)--------IOC、Bean的XML方式装配
基础
1、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">
</beans>
2、初始化容器方法:
- 文件的绝对路径:
FileSystemXmlApplicationContext context1=new FileSystemXmlApplicationContext("C:/configuration.xml")
- Classpath加载
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("configuration.xml");
IOC
1、Bean注入的2种方式:
- set方法注入:通过set方法进行注入。
<bean id="helloSpring" class="service.HelloSpringImpl">
<property name="daoImpl" ref="daoImpl"></property>
</bean>
<bean id="daoImpl" class="DAO.DAOImpl" ></bean>
- 构造方法注入:通过构造方法进行注入
<bean id="helloSpring" class="service.HelloSpringImpl">
<constructor-arg name="daoImpl" ref="daoImpl"></constructor-arg>
</bean>
<bean id="daoImpl" class="DAO.DAOImpl" ></bean>
Bean的XML装配
1、Bean的作用域
- singleton:单例模式
- prototype:原型模式
- request:当前request内有效
- session:当前session内有效
- global session:当前global session内有效
2、Bean初始化和销毁方法
初始化方法:
- 实现
InitializingBean接口,重写afterPropertiesSet()方法 - 在xml文件中,bean定义的地方指定
init-method
销毁方法:
- 实现
DisposableBean接口,重写destroy()方法 - 在xml文件中,bean定义的地方指定
destroy-method
全局初始化和销毁:
通过default-init-method和default-destroy-method关键字进行指定。
<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"
default-init-method="functionInit" default-destroy-method="functionDestroy">
3、Aware
如果类实现了ApplicationContextAware接口,则需要重写接口中的setApplicationContext方法,在IOC容器进行初始化之后,会自动调用setApplicationContext方法。setApplicationContext方法的参数就是IOC容器对象本身。
如果类实现了BeanNameAware接口,则需要重写接口中的setBeanName方法,在Bean实例化的时候,会自动调用setBeanName方法。
还有其他的Aware接口:
BeanFactoryAware:获得当前bean Factory,从而调用容器的服务MessageSourceAware:得到message source从而得到文本信息ApplicationEventPublisherAware:应用时间发布器,用于发布事件ResourceLoaderAware:获取资源加载器,可以获得外部资源文件
4、Bean的自动装配(4种类型)
在xml文件中,通过default-autowire字段进行指定装配模式。而不需要在bean中使用property或者constructor-arg。
<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"
default-autowire="byName">
- No:不做动作
- byName:根据类的成员的名称,从容器中进行匹配并装配。需要set函数支持。
- byType:根据类的成员的类型,从容器中进行匹配并装配。需要set函数支持。如果存在多个同类型对象,则抛出异常。
- Constructor:根据类的成员的类型,从容器中进行匹配并装配。需要构造函数支持。
5、Resources:实现对底层资源的访问
Spring内置6种Resource类型:UrlResource,ClassPathResource,FileSystemResource,ServletContextResource,InputStreamResource,ByteArrayResource
- UrlResource:URL对应的资源
- ClassPathResource:类路径下的资源
- FileSystemResource:文件系统资源
- ServletContextResource:ServletContext对应资源
- InputStreamResource:输入流资源
- ByteArrayResource:字节数组资源
8、ResourceLoader接口:资源加载器
ResourceLoader是一个用于资源加载的接口。Spring中的ApplicationContext实现了ResourceLoader接口,所以可以通过ApplicationContext进行实际资源的加载。
加载方式有4种:
- classpath前缀:从classpath中获取对应的资源文件
- file前缀:从文件系统中获取对应的资源文件,需要绝对路径
- http前缀:从网络中获取对应的资源文件
- 无前缀:从
ApplicationContext所在目录中获取对应的资源文件

Spring基础使用(一)--------IOC、Bean的XML方式装配的更多相关文章
- Spring基础篇——通过Java注解和XML配置装配bean(转载)
作者:陈本布衣 出处:http://www.cnblogs.com/chenbenbuyi 本文版权归作者和博客园共有,欢迎转载分享,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留 ...
- Spring基础篇——通过Java注解和XML配置装配bean
自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应用程序维护,而是引用了第三方的类库,这个时候自动装配便无法实现,Spring对此也提供了相应的解决方案 ...
- Spring总结四:IOC和DI 注解方式
首先我们要了解注解和xml配置的区别: 作用一样,但是注解写在Bean的上方来代替我们之前在xml文件中所做的bean配置,也就是说我们使用了注解的方式,就不用再xml里面进行配置了,相对来说注解方式 ...
- Spring声明式事务管理(基于XML方式实现)
--------------------siwuxie095 Spring 声明式事务管理(基于 XML 方式实现) 以转账为例 ...
- Spring 的IOC容器之XML方式
1. Spring 入门 1.1 概述 Spring 是一个分层的 JavaEE 轻量级开源框架; Spring 的核心是控制反转(IOC)和面向切面(AOP); 1.2 特点 方便解耦,简化开发; ...
- IoC容器-Bean管理XML方式(自动装配)
IoC操作Bean管理(XML自动装配) 1,什么是自动装配 (1)根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性值进行注入 2,演示自动装配过程 (1)根据属性名称自动注入 ...
- IoC容器-Bean管理XML方式(创建对象和set注入属性,有参构造注入属性)
Ioc操作Bean管理 1,什么是Bean管理 (0)Bean管理指的是两个操作 (1)Spring创建对象 (2)Spring注入属性 2,Bean管理操作有两种方式 (1)基于xml配置文件方式实 ...
- IOC装配Bean(XML方式)
Spring框架Bean实例化的方式 提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 无参数构造方法的实例化 <!-- 默认情况下使用的就是 ...
- Spring学习笔记(二)Spring基础AOP、IOC
Spring AOP 1. 代理模式 1.1. 静态代理 程序中经常需要为某些动作或事件作下记录,以便在事后检测或作为排错的依据,先看一个简单的例子: import java.util.logging ...
随机推荐
- iOS- <项目笔记> UIApplication常见属性与方法总结
UIApplication 1.简介 1> 整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式 2> 通过[UIApplication sharedA ...
- 《学习OpenCV》课后习题解答1
题目:(P104) 下面这个练习是帮助掌握矩阵类型.创造一个三通道二维矩阵,字节类型,大小为100*100,并设置所有数值为0. a.在矩阵中使用cvCircle( CvArr* img, CvPoi ...
- 3dContactPointAnnotationTool开发日志(一)
周日毕设开题报告结束后浪了一天,今天又要开始回归正轨了.毕设要做一个人和物体的接触点标注工具,听上去好像没啥难度,其实实现起来还是挺麻烦的. 今天没做啥,就弄了个3d场景做样例.把界面搭了一下 ...
- 结对作业二——WordCount进阶版
软工作业三 要求地址 作业要求地址 结对码云项目地址 结对伙伴:秦玉 博客地址 PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 10 7 · ...
- MySQL event调度
基本命令 //查看事件调度是否开启 show variables like '%event_scheduler%'; //开启事件调度 SET GLOBAL event_scheduler = ON; ...
- Android Studio类中实现Serializable自动生成serialVersionUID
1.File -> Settings... -> Editor -> Inspections -> Serialization issues -> Serializabl ...
- WebService部署服务器调试时提示 “测试窗体只能用于来自本地计算机的请求”解决方法
原因:没有开启服务器访问权限! 解决方法: 在web.config的<system.web></system.web>中加入如下配置节内容即可解决 <webService ...
- java session特性
1.当前浏览器不关闭 则一直有效 servlet就能取到值(未设置过期时间情况下 或者在过期的时间范围内) 算成一次会话 再次会话内多个请求都能获得session 2.session保存在服务端,通 ...
- Luogu1092 NOIP2004虫食算(搜索+高斯消元)
暴力枚举每一位是否进位,然后就可以高斯消元解出方程了.然而复杂度是O(2nn3),相当不靠谱. 考虑优化.注意到某一位进位情况的变化只会影响到方程的常数项,于是可以在最开始做一次高斯消元算出每个未知数 ...
- Android ListView 中加入CheckBox/RadioButton 选择状态保持、全选、反选实现
最近在一个项目中,需要在ListView的item中加入CheckBox,但是遇到的一个问题是上下滑动的时候如果有选择了的CheckBox,就会出现选择项错误的问题,下面将个人的解决方法总结如下;先说 ...