第3章—高级装配—配置profile bean】的更多相关文章

配置profile bean 3.1.@profile注解是spring提供的一个用来标明当前运行环境的注解. 我们正常开发的过程中经常遇到的问题是,开发环境是一套环境,qa测试是一套环境,线上部署又是一套环境.这样从开发到测试再到部署,会对程序中的配置修改多次,尤其是从qa到上线这个环节,让qa的也不敢保证改了哪个配置之后能不能在线上运行. 为了解决上面的问题,我们一般会使用一种方法,就是配置文件,然后通过不同的环境读取不同的配置文件,从而在不同的场景中跑我们的程序. 那么,spring中的@…
Spring高级装配要学习的内容包括: Spring profile 条件化的bean声明 自动装配与歧义性 bean的作用域 Spring表达式语言 以上属于高级一点的bean装配技术,如果你没有啥特别的需求的话用的还比较少.但是用于解决变态一点的需求还是要学一下留个备份. 环境与Profile 直接上情形吧,一个项目现在有三个阶段,不同阶段使用的dataSource的来源不一样,分别是: 开发阶段:使用嵌入式的Hypersonic数据库 QA阶段:使用不同DataSource配置,比如Com…
最近在读spring实战一书,个人感觉内容通俗易懂,学到了一些之前并不知道的知识,于是打算在博客里记录一下这些知识点便于后期记忆: 今天要记录的就是spring的条件化创建bean,针对条件化创建bean方面spring有两方面处理机制,分别是spring3.1引入的profile机制和4.0引入的通过@Conditional注解来定义条件化的bean,下面进行一一介绍.其中例子全部copy书中的案例 一.profile机制 书中是通过要创建三个分别适用于开发,生产和qa环境的DataSourc…
条件化的Bean 通过活动的profile,我们可以获得不同的Bean.Spring 4提供了一个更通用的基于条件的Bean的创建方式,即使用@Conditional注解. @Conditional根据满足某个特定的条件创建一个特定的Bean.比如,当某一个jar包在一个类路径下时,自动配置一个或者多个Bean.或者只有一个Bean创建时,才会创建另一个Bean.总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动配置. 下面的示例将以不同的操作系统作为条件,…
profile的原意为轮廓.剖面等,软件开发中可以译为“配置”. 在3.1版本中,Spring引入了bean profile的功能.要使用profile,首先要将所有不同的bean定义整理到一个或多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活(active)状态. 1.@Profile注解应用在类上 在一个类上使用JavaConfig中的注解@Profile("xxx"),指定这个类中的bean属于某一个profile. 它告诉Spring,这个配置…
bean的作用域 bean的默认作用域 Spring定义了多种作用域,可以基于这些作用域创建bean,包括: 单例(Singleton):在整个应用中,只创建bean的一个实例. 原型(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean实例. 会话(Session):在web应用中,为每个会话创建一个bean实例. 请求(Request):在web应用中,为每个请求创建一个bean实例. 单例是默认的作用域,但是正如之前所描述,对于易变的类型,这并不…
前言 前面讲解了bean的核心装配技术,其可应付很多中装配情况,但Spring提供了高级装配技术,以此实现更为高级的bean装配功能. 高级装配 配置profile bean 将所有不同bean定义放置在一个或多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活状态.如配置了如下数据源,并使用profile注解定义. JavaConfig配置profile 开发环境中的数据源配置 package com.hust.grid.leesf.ch3; import jav…
前言: 在上一章装配Bean中,我们看到了一些最为核心的bean装配技术.你可能会发现上一章学到的知识有很大的用处.但是,bean装配所涉及的领域并不仅仅局限于上一章 所学习到的内容.Spring提供了多种技巧,借助它们可以实现更为高级的bean装配功能.在本章中,我们将会深入介绍一些这样的高级技术. 使用情景: 在开发软件的时候,有一个很大的挑战就是将应用程序从一个环境迁移到另外一个环境.开发阶段中,某些环境相关做法可能并不适合迁移到生产环境中,甚至即便迁移过去也无法正常工作.数据库配置.加密…
目录 spring profile 条件化的bean声明 自动装配与歧义性 bean的作用域 Spring表达式语言 一.环境与profile 配置profile  bean 在软件开发的时候,有一个很大的挑战就是将应用程序从一个环境迁移到另外一个环境.数据库配置.加密算法以及与外部系统的集成是夸环境部署时会发生变化的几个典型例子. 以下是两个不同环境的DataSource   bean. package springdemo.test1.entity.datasource; import ja…
高级装配 一.环境与Profile 一)配置profile bean 环境的改变导致配置改变(需求:通过环境决定使用哪个bean),可以通过Spring的Profile解决. Profile可以在程序运行时根据环境的改变决定使用哪个bean.所以一个部署单元能适应所有环境. 1.在Java文件中配置  @Configuration public class UserConfig { @Bean @Profile("dev") //dev激活时才创建使用该bean public User…