| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Boot07 -> 正文阅读 |
|
[Java知识库]Spring Boot07 |
目录 3.7Bean的作用域在前面介绍BeanFactroy时,其中isSingleton()和isPrototype()俩个方法没有说,这两个方法是判断用来Bean的作用域的
对于单例来说,无论我们获取多少次,获取的都是同一个对象。 对于原型来说,我们每获取一次,获取的对象都不相同 在一般的容器中Bean的作用域只会存在单例和原型,而在Web容器中存在Page(页面)?,request(请求),session(会话),application(应用)4种作用域,Spring无法支持,为了满足各类的作用域在Spring的作用域中就存在如下所示的几种类型
我们通过实例来比较Singleton与Prototype的区别 ①创建Bean类,配置@Scope(这里不配置也可以,因为SpringIoC默认时单例)
?②进行测试,首先获取两个Bean实例,对其进行比较,如果返回true说明为单例
?③运行结果 ?④改变@Scope注解的配置项
⑤运行结果 ?这里的ConfigurableBeanFactroy只能提供单例和原型,如果在SpringMVC环境中,我们还可以使用WebApplicationContext去定义其他作用域,如请求(SCOPE_REQUEST),等 ? ?如果定义上图Bean的作用域,那么每次请求都会共用一个Bean,第二次请求会产生新的Bean 3.8使用@Profile在企业开发中,往往项目要有四套环境,开发环境,测试环境,准生产环境,生产环境,而且每套环境上下文是不一样的,例如:开发环境的数据库一般和测试环境的数据库不一样,我们要频繁的切换,为了方便Spring提供了Profile机制,使我们可以很方便的实现个环境之间的切换 我们以数据库为例进行解释 假设存在dev_spring_boot和test_spring_boot两个数据库,这样可以使用注解@Profile定义两个Bean,代码如下
那Spring 给我们提供了俩个参数供我们配置,用来修改启动Profile机制,①spring.profiles.active②spring.profiles.default 如果这两个属性都没配置的情况下,spring不会启动Profile机制,这就意味着@Profile注解修饰的Bean将不会被Spring装配到IoC容器 spring.profiles.active的优先级大于spring.profiles.default我觉得看英文能看懂的,以各位的才智 我们来用IDEA演示一下 ?在VM 里面配置参数 -Dspring.profiles.active=dev ?如果没有VM选项(如下图所示),我们可以打开修改选项,添加VM选项 ? ?那么对于属性配置文件,每个数据库也都要有对于的属性文件吧,我们创建两配置文件 application-dev.properties和application-test.properties,并且配置日志为DEBUG级别,这样会很详细(关于数据库的配置大家应该都会哈哈哈)
?这个时候要注意,按照SpringBoot的规则,假设把选项-Dspring.profiles.active配置的值记为{profile},则它会用application-{profile}.properties文件去代替原来的默认application.properties文件 这样每当我们想切换环境时,我们就可以通过修改-Dspring.profiles.active参数来修改配置文件 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:08:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |