【Spring】高级装配】的更多相关文章

Spring高级装配 目录 一.Profile(根据开发环境创建对应的bean) 二.条件化的创建bean(根据条件创建bean) 三.处理自动装配歧义性(指定首选bean.限定符限制bean) 四.Bean的作用域(单例.原型.会话.请求) 五.配置文件信息注入(.properties文件的使用,SpEL的使用) 一.根据开发环境创建对应的bean 在一个项目的开发过程中,一般要经过开发.测试.生产等三个阶段,分别对应三种环境.因为在各个环境可能数据库配置.加密算法等的不同,所以将应用从一个环…
Spring高级装配要学习的内容包括: Spring profile 条件化的bean声明 自动装配与歧义性 bean的作用域 Spring表达式语言 以上属于高级一点的bean装配技术,如果你没有啥特别的需求的话用的还比较少.但是用于解决变态一点的需求还是要学一下留个备份. 环境与Profile 直接上情形吧,一个项目现在有三个阶段,不同阶段使用的dataSource的来源不一样,分别是: 开发阶段:使用嵌入式的Hypersonic数据库 QA阶段:使用不同DataSource配置,比如Com…
目录 spring profile 条件化的bean声明 自动装配与歧义性 bean的作用域 Spring表达式语言 一.环境与profile 配置profile  bean 在软件开发的时候,有一个很大的挑战就是将应用程序从一个环境迁移到另外一个环境.数据库配置.加密算法以及与外部系统的集成是夸环境部署时会发生变化的几个典型例子. 以下是两个不同环境的DataSource   bean. package springdemo.test1.entity.datasource; import ja…
Condition:满足某个特定条件的情况下创建bean 条件化配置bean: a:@Conditional 指定一个class ,它指明了通过条件对比的类.如果没有指定class则通过Conditon接口进行条件对比: b:@Conditional 指定的类可以是任意实现了Condition接口的类 c:指定的类需要重写matches方法 1.例子1: @Bean @Conditional(MagicExistsConditon.class) //条件化的创建bean public Magic…
1.环境与profile 示例:数据库配置 a:通过@Bean注解,通过EmbeddedDatabaseBuilder创建数据源 @Bean(destroyMethod="shutdown") public DataSource dataSource(){ return new EmbeddedDatabaseBuilder() .addScript("classpath:schema.sql") .addScript("classpath:test-da…
如果你希望一个bean在特定的条件下才会出现: 应用的类路径下包含特定的库时才创建 只有当某个特定的bean也声明之后才会创建 某个特定的环境变量设定之后才创建某个bean 在Spring 4之前,很难实现这种级别的条件化配置,但是Spring4引入了一个新的@Conditional注解,它可以用到带有@Bean注解的方法上.如果给定的条件计算结果为true,就会创建这个bean,否则的话,这个bean会被忽略. 示例:设置了magic环境属性才去实例化MagicBean @Bean @Cond…
1.默认情况下,spring通过@Autowared注入的bean是单例的bean,但有些情况是不满足的,例如:购物车,每个会话,或每个用户登录使用的购物车都是独立的 spring的定义的作用域: a:单例(Singleton) b:原型(prototype):每次注入的都会创建一个新的bean实例. c:会话(session):web应用中,每个会话创建一个bean. d:请求(Rquest):web应用中,为每个请求创建一个bean. 例子1: @Component @Scope(Confi…
profile的原意为轮廓.剖面等,软件开发中可以译为“配置”. 在3.1版本中,Spring引入了bean profile的功能.要使用profile,首先要将所有不同的bean定义整理到一个或多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活(active)状态. 1.@Profile注解应用在类上 在一个类上使用JavaConfig中的注解@Profile("xxx"),指定这个类中的bean属于某一个profile. 它告诉Spring,这个配置…
高级装配用来适应开发和生产 不同环境下的软切换 一.环境与profile 1.开发环境下的profile package com.bonc.config; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.con…
前言 前面讲解了bean的核心装配技术,其可应付很多中装配情况,但Spring提供了高级装配技术,以此实现更为高级的bean装配功能. 高级装配 配置profile bean 将所有不同bean定义放置在一个或多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活状态.如配置了如下数据源,并使用profile注解定义. JavaConfig配置profile 开发环境中的数据源配置 package com.hust.grid.leesf.ch3; import jav…