当前位置: 首页 > news >正文

wordpress开发中介网站网站个免费的空间

wordpress开发中介网站,网站个免费的空间,南通网站seo报价,网站建设方案实训总结目录 什么是 Bean 的作用域 ?Bean 的六种作用域Spring 的执行流程Bean 的生命周期 什么是 Bean 的作用域 ? Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式,⽐如 singleton 单例作⽤域,就表示 Bean 在整个 Spring 中只有⼀份&#xff0c…

目录

  • 什么是 Bean 的作用域 ?
  • Bean 的六种作用域
  • Spring 的执行流程
  • Bean 的生命周期

什么是 Bean 的作用域 ?

Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式,⽐如 singleton 单例作⽤域,就表示 Bean 在整个 Spring 中只有⼀份,它是全局共享的,那么当其他⼈修改了这个值之后,那么另⼀个⼈读取到的就是被修改的值。

它的概念与我们之前学的作用域不一样,之前是指变量的可⽤范围叫做作⽤域。

Bean 的六种作用域

  1. singleton:单例作用域(默认的作用域,线程不安全)
    说明:该作⽤域下的 Bean 在 IoC 容器中只存在⼀个实例:获取 Bean 及装配 Bean 都是同⼀个对

    场景:通常⽆状态的 Bean 使⽤该作⽤域。⽆状态表示 Bean 对象的属性状态不需要更新
    (无状态的 bean:只有普通的对数据的操作方法,没有存储功能)
  1. prototype:原型(多例)作用域 (线程安全)
    说明:每次对该作⽤域下的 Bean 的请求都会创建新的实例:获取 Bean 及装配 Bean 都是新的对象
    实例
    场景:通常有状态的Bean使⽤该作⽤域
  1. request:请求作用域
    说明:每次http请求会创建新的Bean实例,类似于prototype
    场景:⼀次http的请求和响应的共享Bean
    备注:限定SpringMVC中使⽤
  1. session:会话作用域
    说明:在⼀个http session中,定义⼀个Bean实例
    场景:⽤户回话的共享Bean, ⽐如:记录⼀个⽤户的登陆信息
    备注:限定SpringMVC中使⽤
  1. application:应用作用域(了解)
    说明:在⼀个http servlet Context中,定义⼀个Bean实例
    场景:Web应⽤的上下⽂信息,⽐如:记录⼀个应⽤的共享信息
    备注:限定SpringMVC中使⽤
  1. websocket(了解)
    说明:在⼀个HTTP WebSocket的⽣命周期中,定义⼀个Bean实例
    场景:WebSocket的每次会话中,保存了⼀个Map结构的头信息,将⽤来包裹客户端消息头。第⼀
    次初始化后,直到WebSocket结束都是同⼀个Bean
    备注:限定Spring WebSocket中使⽤

注意:普通的 Spring 项⽬中只有前两种,后 4 种状态是 Spring MVC 中的。

两种设置多例作用域方法:
@Scope(“prototype”)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

检验默认作用域是否为单例作用域:

User 类:

public class User {private String name;private int id;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}
}

Users 类(存储公共对象):

@Service
public class Users {@Beanpublic User getUser(){User user = new User();user.setId(888);user.setName("张三");return user;}
}

取对象的两大类:

@Controller
public class UserController1 {@Autowiredprivate User user;public void doMethod() {System.out.println("修改前的名字: " + user.getName());user.setName("王五");System.out.println("修改后的名字: " + user.getName());}
}
@Controller
public class UserController2 {@Autowiredprivate User user;public void doMethod() {System.out.println("UserController2 拿到的名字: " + user.getName());}
}

启动类:

public class App {public static void main(String[] args) {ApplicationContext context =new ClassPathXmlApplicationContext("spring-config.xml");UserController1 userController1 =context.getBean("userController1",UserController1.class);userController1.doMethod();UserController2 userController2 =context.getBean("userController2",UserController2.class);userController2.doMethod();}
}

输出:
在这里插入图片描述
可以看到张三这个名字被改后,后续再取这个 Bean 就拿不到张三了。

设置多例作用域:

@Service
public class Users {@Scope("prototype")@Beanpublic User getUser(){User user = new User();user.setId(888);user.setName("张三");return user;}
}

在这里插入图片描述
这里拿到的每个 Bean 对象都是 new 了一个新的,不是直接拿容器中原有的对象。

Spring 的执行流程

  1. 启动容器
  2. 读取配置进行 Bean 的实例化(分配内存空间,从无到有)
  3. 将 Bean 加入到容器中(存操作)
  4. 装配 Bean 属性(取操作)

Bean 的生命周期

⽣命周期指的是⼀个对象从诞⽣到销毁的整个⽣命过程,Bean 的生命周期分为下面五个部分:

  1. 实例化(内存空间分配)
  2. 设置 Bean 属性(进行依赖注入,将依赖的 Bean 赋值到当前类属性上)
  3. Bean 的初始化
    3.1 执行各种通知
    3.2 初始化的前置方法
    3.3 初始化方法
    3.4 初始化的后置方法
  4. 使用 Bean
  5. 销毁 Bean

实例化和初始化的区别:
实例化和属性设置是 Java 级别的系统“事件”,其操作过程不可⼈⼯⼲预和修改;⽽初始化是给开发者提供的,可以在实例化之后,类加载完成之前进⾏⾃定义“事件”处理

http://www.yayakq.cn/news/591078/

相关文章:

  • 网站图片优化自助网站建设开发
  • 注释网站开发从域名到网站建设完成的流程
  • 长治专业做网站幻想次元wordpress
  • 简述网站技术解决方案百度网站建设制作公司
  • 吉安企业做网站淳安县建设局网站
  • 做毕设网站多少钱如何建设网站方便后期维护
  • 大庆市让胡路区规划建设局网站安徽池州网站制作
  • 成都网站建设公司招聘做网站怎么跟别人讲价
  • 铜山网站开发wordpress换行
  • 网站品牌建设流程集团网站建设管理制度
  • 网站建设费用价格表网站设计站点管理
  • aspcms 网站无法显示该页面番禺开发网站费用
  • 重庆网站排名外包网站如何添加内容
  • 能够做外贸的网站有哪些问题东莞百度搜索网站排名
  • 网站域名怎么看多媒体展厅哪家公司好
  • 西安网站建设选任我行网络wordpress设置链接到新页面
  • 合肥网站设计 goz新开最好的传奇网站
  • 门户网站开发源代码网站开发缓存
  • 海尔网站建设目标网站建设+网络科技公司
  • 模板网站视频中英语双语网站咋做
  • 长沙公司网站制作淘宝建设网站首页
  • 在哪里建网站免费什么网站系统好
  • 安徽做网站打开百度一下搜索
  • 国外游戏网站设计网站域名在哪里查询
  • 专业外贸网站制作wordpress5.1好用
  • 莞城建设小学网站网站你懂我意思正能量晚上在线观看不用下载免费魅族
  • 网站开发网搜索引擎优化趋势
  • 抚州专业的企业网站建设公司软考证书含金量排名
  • 神马快速排名优化工具seo推广怎么做视频教程
  • 广州天河区网站建设wordpress出售功能插件