博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring框架:Spring容器具体解释
阅读量:4670 次
发布时间:2019-06-09

本文共 1734 字,大约阅读时间需要 5 分钟。

Spring容器

Spring容器能够帮助你管理所有的Bean对象。专业术语称之为IoC控制反转。在传统的程序中。对象的生成都是由开发人员完毕的。而在控制反转中,对象的生成所有都交给框架完毕。这种优点就是降低了程序的依赖性。

Bean在Spring中的生命周期例如以下:

  • 实例化。

    Spring通过newkeyword将一个Bean进行实例化,JavaBean都有默认的构造函数,因此不须要提供构造參数。

  • 填入属性。Spring依据xml文件里的配置通过调用Bean中的setXXX方法填入相应的属性。
  • 事件通知。Spring依次检查Bean是否实现了BeanNameAware、BeanFactoryAware、ApplicationContextAware、BeanPostProcessor、InitializingBean接口,假设有的话,依次调用这些接口。

  • 使用。应用程序能够正常使用这个Bean了。
  • 销毁。假设Bean实现了DisposableBean接口。就调用其destroy方法。

定义一个Bean的语法例如以下。

使用这个Bean时仅仅要通过applicationContext.getBean("apple")就可以获取。

作用域。

在Spring中还能够指定Bean的作用域,也就是Bean的寿命。仅仅要设置bean标签的scope属性就可以。Spring提供的生命周期有:singleton整个应用仅仅有一个、prototype每次调用都产生一个新的、request每一个HTTP请求相应一个bean、session每一个HTTP会话相应一个bean、global-session每一个portlet上下文session相应一个bean。

默认生命周期是singleton。

初始化和销毁。第一种方法,在xml中的bean标签添加init-method和destroy-method属性来指定初始化和销毁方法。

另外一种方法,在bean的java类中implements InitializingBean或者DisposableBean接口实现初始化和销毁。第三种方法。在xml中的beans标签中添加default-init-method和default-destroy-method属性。

另外,能够通过RPC或者JMS配置远程Bean。

后面的章节有介绍。

外部配置

有时候有些关键的属性,比方数据库password,须要放在xml文件之外,便于兴许改动。

Spring解决问题的方法有两种。一种是属性占位符,一种是属性重写。另外阿里提供的AutoConfig有更好的配置管理机制。将在后面具体介绍。

关于占位符。首先加载属性文件:

或者

引用属性中的变量:

覆盖properties文件里的变量:

jdbc:mysql://localhost/test
com.mysql.jdbc.Driver
除了OVERRIDE还有FALLBACK、NEVER。

覆盖xml配置。

加载properties文件并覆盖现有的xml配置。

请看以下的样例:

jdbc:oracle://xxx
xxx

db.properties文件的内容:

dataSource.url=jdbc:mysql://xxxdataSource.username=yyy

加密配置值。加载经过加密的properties文件:

Session

Spring中的Session一般不须要直接操作,而是将数据保存到Bean容器中的scope=session中。

转载于:https://www.cnblogs.com/yxwkf/p/5340655.html

你可能感兴趣的文章
win10 UWP 序列化
查看>>
读书心得
查看>>
前端知识整理 CSS盒模型
查看>>
sendmail 常见报错总结
查看>>
asp.net Response.AddHeader的方法来下载
查看>>
neo4j-访问提示No authorization header supplied.
查看>>
android-activity生命周期方法
查看>>
基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题...
查看>>
web之JavaScript
查看>>
HTML input 控件
查看>>
MongoDB副本集配置系列六:定位MongoDB慢的原因
查看>>
[EGORefreshTableHeaderView]手动启动下拉更新的方法
查看>>
Linux磁盘分区/格式化/挂载目录
查看>>
raspberry pi下使用mp3blaster播放mp3音乐
查看>>
[转]win7 64位下android开发环境的搭建
查看>>
mysql 无法链接, 输入密码失败
查看>>
java中enum类型的使用
查看>>
枚举类型转换成字符串
查看>>
(剑指Offer)面试题46:求1+2+3+....+n
查看>>
连续子数组的最大和(基于动态规划)
查看>>