004_Bean标签
1. <bean>标签的id和name的配置
1.1. id: 使用了约束中的唯一约束。里面不能出现特殊字符的。
1.2. name: 没有使用约束中的唯一约束(理论上可以出现重复的,但是实际开发不能出现的)。里面可以出现特殊字符。
2. Bean的生命周期的配置
2.1. init-method: Bean被初始化的时候执行的方法。
2.2. destroy-method: Bean被销毁的时候执行的方法(Bean是单例创建, 工厂关闭)。
3. Bean的作用范围scope的配置
3.1. singleton: 默认的作用范围, Spring会采用单例模式创建这个对象。
3.2. prototype: 多例模式。
3.3. request: 应用在web项目中, Spring创建这个类的对象以后, 将这个对象存入到request范围中。
3.4. session: 应用在web项目中, Spring创建这个类的对象以后, 将这个对象存入到session范围中。
3.5. globalsession: 应用在web项目中, 必须在porlet环境下使用。但是如果没有这种环境, 相当于session。
4. Bean标签例子
4.1. 新建一个名为SpringBeanTag的Java项目, 拷入Spring相关包
4.2. 新建UserDaoImpl.java
package com.lywgames.dao.impl;public class UserDaoImpl {public UserDaoImpl() {System.out.println("UserDaoImpl实例化构造函数。");}public void init() {System.out.println("UserDaoImpl初始化了。");}public void login() {System.out.println("用户登录成功。");}public void destroy() {System.out.println("UserDaoImpl销毁了。");}
}
4.3. 新建UserAddressDaoImpl.java
package com.lywgames.dao.impl;public class UserAddressDaoImpl {public UserAddressDaoImpl() {System.out.println("UserAddressDaoImpl实例化构造函数。");}public void init() {System.out.println("UserAddressDaoImpl初始化了。");}public void add() {System.out.println("添加用户收获地址成功。");}public void destroy() {System.out.println("UserAddressDaoImpl销毁了。");}
}
4.4. 新建Test.java
package com.lywgames.beantag;import java.util.Timer;
import java.util.TimerTask;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lywgames.dao.impl.UserAddressDaoImpl;
import com.lywgames.dao.impl.UserDaoImpl;public class Test {public static void main(String[] args) {// 类路径加载配置文件ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");Timer timer = new Timer();// 设定指定的时间time, 此处为2000毫秒timer.schedule(new TimerTask() {public void run() {System.out.println("----------2秒后----------");UserDaoImpl userDao1 = (UserDaoImpl) context.getBean("userDao");UserDaoImpl userDao2 = (UserDaoImpl) context.getBean("userDao");userDao1.login();userDao2.login();}}, 2000);// 设定指定的时间time, 此处为5000毫秒timer.schedule(new TimerTask() {public void run() {System.out.println("----------3秒后----------");UserAddressDaoImpl userAddressDao1 = (UserAddressDaoImpl) context.getBean("userAddressDao");UserAddressDaoImpl userAddressDao2 = (UserAddressDaoImpl) context.getBean("userAddressDao");userAddressDao1.add();userAddressDao2.add();}}, 5000);// 设定指定的时间time, 此处为10000毫秒timer.schedule(new TimerTask() {public void run() {System.out.println("----------5秒后----------");context.close();System.exit(-1);}}, 10000);while (true) {}}
}
4.5. 在src目录下创建applicationContext.xml
4.6. 运行项目, 一加载applicationContext.xml文件, 就创建了和初始化了UserDaoImpl这个单例模式的类实例。2秒后, 我们获取了2次id为userDao这个Bean, 并没有再次给我们创建实例, 说明单例模式类, 在加载applicationContext.xml文件时就会创建实例, 之后获取的都是同一实例。再过3秒, 我们获取了2次id为userAddressDao这个Bean, 给我们创建了2实例, 并调用了初始化接口, 说明多例模式的类, 每获取一次Bean, 就会创建一个实例。再过5秒, 我们销毁了应用程序上下文, 只有单例模式的类调用了销毁方法。
004_Bean标签相关推荐
- Go 知识点(18)— 条件编译(编译标签、文件后缀)
1. 条件编译 Go 能根据所处环境选择对应的源码进行编译.让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就叫做条件编译. 在 Go 中,也称之为 Build Constraints ...
- Git 常用操作(2)- 创建标签
1. 列出标签 在 Git 中列出已有的标签是非常简单直观的.只需要输入 git tag: $ git tag v0.1 v1.3 2. 创建标签 Git 使用两种主要类型的标签:轻量标签(light ...
- Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像
1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...
- JSTL标签库学习笔记
JSTL概述 apache的东西,依赖于EL 使用jstl需要导入jstl.jar包 标签库 core 核心标签库 fmt 格式化标签库 sql 数据库标签库,过时 xml xml标签库,过时 JST ...
- jquery过滤HTML标签方法
//过滤HTML标签 function removeHTMLTag(str) {str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML tags ...
- BCELoss BCEWithLogitsLoss 多标签损失函数
BCELoss 在图片多标签分类时,如果3张图片分3类,会输出一个3*3的矩阵. 先用Sigmoid给这些值都搞到0~1之间: 假设Target是: emmm应该是我上面每次都保留4位小数,算到最后误 ...
- xgboost lightgbm catboost 多分类 多标签
xgboost 与 lightgbm 官方均支持多分类任务,但不直接支持多标签分类任务,实现多标签任务的方法之一是结合sklearn 提供的 multiclass 子类,如OneVsRestClass ...
- G6实现标签拖动连线画流程图
需求描述 列出所有的task标签,拖动task标签在一旁画流程图,打包task的任务名及id和任务的执行流程以json的格式发给后端. 技术栈 G6,vue,h5自带的draggable实现拖动.也稍 ...
- 语义分割改进:通过视频传播和标签松弛
语义分割改进:通过视频传播和标签松弛 Improving Semantic Segmentation via Video Propagation and Label Relaxation 论文地址:h ...
最新文章
- matlab 数据集制作,机器学习数据集制作与划分MATLAB实现
- MACE(2)-----模型编译
- POJ 放苹果问题(递归)
- iptables删除所有规则_如何解决iptables删除命令中遇到的问题
- JRebel : java.lang.OutOfMemoryError: PermGen space 异常
- mysql 取 浮点运算_mysql 浮点型运算误差原因分析及解决方法
- Win10卸载python总是提示error2503失败各种解决办法
- 【转载】windows跳板机配置远程桌面连接
- 如何在Linux中使用history命令
- springboot整合Mybatis例子
- java中一个数轮流除去所有数_Java实现A、B两人轮流从盒中取球,取出球的数目必须是:1,3,7或者8个...
- Handlebars 和 angularjs 之间的区别
- ASP.NET Web API实践系列09,在Fiddler和控制台中模拟GET和POST请求
- 成绩排序(一)c++
- Halcon学习---毛刺凸点检测
- 【教男朋友用python做计量】03.利用python进行假设检验(1)
- 【对讲机的那点事】对讲机电池、充电器使用说明须知
- 软件公司 sun公司 Oracle公司
- 利用mybatis拦截器注解处理sql
- 飞行员兄弟 Java版