摘自springside3
Spring 3.1的功能,以后就不用为了区分Test, Dev, Production环境,搞几个只有细微区别的application.xml, application-test.xml及引用它们的web.xml了。
首先,将applicationContext.xml中的namespace从3.0升级到3.1.xsd, 然后就可以在文件末尾加入不同环境的定义,比如不同的dataSource
2.在web.xml里,你需要定义使用的profile,最聪明的做法是定义成context-param,注意这里定义的是default值,在非生产环境,可以用系统变量"spring.profiles.active"进行覆盖。
3.在其他地方进行覆盖
3.1 在development和functional test启动Jetty前设置系统变量
3.2 在用到ApplicationContext的单元测试用例中,用 @ActiveProfiles定义
在springside里有演示了production,development,test,functional三个环境, 大家可以根据实际情况组合自己的环境管理。另外可以与Spring的properties文件加载时可顺位覆盖的特性(放一些不在版本管理中的xx.local.properties文件),更好的支持本地开发环境,Jenkins上的functional test等其他环境。
首先,将applicationContext.xml中的namespace从3.0升级到3.1.xsd, 然后就可以在文件末尾加入不同环境的定义,比如不同的dataSource
- <beans profile="test">
- <jdbc:embedded-database id="dataSource">
- <jdbc:script location="classpath:com/bank/config/sql/schema.sql"/>
- </jdbc:embedded-database>
- </beans>
- <beans profile="production">
- <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/datasource"/>
- </beans>
2.在web.xml里,你需要定义使用的profile,最聪明的做法是定义成context-param,注意这里定义的是default值,在非生产环境,可以用系统变量"spring.profiles.active"进行覆盖。
- <context-param>
- <param-name>spring.profiles.default</param-name>
- <param-value>production</param-value>
- </context-param>
3.在其他地方进行覆盖
3.1 在development和functional test启动Jetty前设置系统变量
- System.setProperty("spring.profiles.active", "development");
- server.start()
3.2 在用到ApplicationContext的单元测试用例中,用 @ActiveProfiles定义
- @ContextConfiguration(locations = { "/applicationContext.xml" })
- @ActiveProfiles("test")
- public class AccountDaoTest extends SpringTxTestCase {
- }
在springside里有演示了production,development,test,functional三个环境, 大家可以根据实际情况组合自己的环境管理。另外可以与Spring的properties文件加载时可顺位覆盖的特性(放一些不在版本管理中的xx.local.properties文件),更好的支持本地开发环境,Jenkins上的functional test等其他环境。
详情:https://github.com/springside/springside4/wiki/Spring
http://jinnianshilongnian.iteye.com/blog/2000183
详细配置与使用:http://www.cnblogs.com/chanedi/archive/2012/01/12/2320837.html
相关推荐
在Spring XML配置文件中,我们通过`<bean>`标签定义一个bean。例如: ```xml <bean id="exampleBean" class="com.example.ExampleBean"> <!-- 初始化参数 --> <property name="name" value="张三"/> </bean> ``` ...
在标准的Spring XML配置中,我们通常使用`<import>`标签配合`<beans>`标签的`profile`属性来实现类似的功能,根据不同的环境条件加载不同的Bean。 例如,使用`profile`属性来区分开发环境和生产环境: ```xml ...
10. ** profiles**:Spring 3.1 引入了环境特定的配置,即`profile`,可以根据不同环境加载不同的配置。 最后,关于`springframework`这个文件名,这可能是指Spring框架的完整源代码或相关库。通过阅读Spring的源码...
<beans profile="dev"> <!-- 开发环境配置 --> </beans> <beans profile="test"> <!-- 测试环境配置 --> </beans> <beans profile="prod"> <!-- 生产环境配置 --> </beans> ``` 或者使用Java配置: ```java @...
1. `<beans>`:这是所有配置的根元素,用于定义一个或多个Bean。 2. `<bean>`:表示一个对象实例,通过这个元素可以指定类名、初始化方法、依赖关系等。 3. `<property>`:用于设置Bean的属性值,通过name属性指定...
Spring Boot支持多环境配置,可以通过`spring.profiles.active`属性切换不同的环境。在XML配置中,你可以使用`<beans profile="dev">`来区分不同环境的配置。 6. **注意依赖** 使用XML配置时,确保你的项目中包含...
3. **Spring 容器配置元信息**:这包括XML配置文件中的`beans`元素,它定义了容器的全局属性,如`default-lazy-init`、`default-autowire`等,这些属性影响整个容器的行为。例如,`default-lazy-init`决定了容器是否...
3. **XML配置**: 传统上,Spring装配是通过XML配置文件完成的。例如,我们可以在`beans.xml`中定义Bean及其属性、依赖关系等。 ```xml <bean id="exampleBean" class="com.example.ExampleClass"> <property ...
在实际开发中,你还需要确保XML配置中的bean与Spring Boot的自动配置不冲突,必要时可以使用`@Profile`或`@Conditional`注解来控制不同环境下的配置加载。 总结来说,Spring Boot虽然主要依赖Java和YAML配置,但...
- **Multi-profile YAML文档**:支持多环境配置。 - **YAML缺点**:讨论YAML相对于Properties文件的局限性。 - **类型安全的配置属性**: - **第三方配置**:集成第三方系统的配置。 - **松散的绑定(Relaxed ...
1. 默认属性:Spring Boot 内置的默认属性,位于 spring-boot-autoconfigure-<version>.jar 中的 META-INF/spring.factories。 2. `application.properties` 或 `application.yml`:在 classpath 根目录下,用于应用...
- **在Spring环境中使用YAML暴露属性**:介绍如何在Spring环境中使用YAML配置文件。 - **Multi-profile YAML文档**:说明如何在同一份YAML文件中定义多份配置。 - **YAML缺点**:指出使用YAML作为配置文件格式的...
在Spring框架中,`ApplicationContextInitializer`接口扮演着一个关键的角色,它允许开发者在Spring容器初始化时执行自定义的配置。这个接口提供了在`ConfigurableApplicationContext`的`refresh()`方法被调用之前对...
Spring Boot的特性部分深入讲解了SpringApplication,包括自定义Banner、自定义SpringApplication、流畅的构建API、Application事件和监听器、Web环境、命令行启动器以及Application退出的相关知识。 外化配置部分...
- **指定配置(Profile-specific)的属性**:如何为不同的环境使用不同的配置文件。 - **properties 文件中的占位符**:如何在配置文件中使用占位符。 - **使用 YAML 替代 Properties**:YAML 是一种更直观的配置...
3. **Profile**:引入了环境配置的概念,可以根据不同的运行环境加载不同的配置。 4. **表达式语言(SpEL)**:提供了强大的表达式语言,用于在运行时查询和操作对象模型。 5. **AOP增强**:增加了对环绕通知的支持...
这部分章节讲述了如何使用构建系统(如Maven、Gradle和Ant)、组织代码、配置类导入、自动配置、Spring Beans和依赖注入、@SpringBootApplication注解的使用,以及如何运行应用程序。 五、Spring Boot特性 Spring ...
2. spring-beans:管理Bean的创建、配置和依赖注入。 3. spring-context:上下文模块,扩展了bean工厂,提供事件发布、国际化、资源访问等功能。 4. spring-aop:面向切面编程模块,支持声明式事务、日志等切面功能...
Spring Boot还具有自动配置特性,它可以自动配置Spring应用,用户可以通过注解逐步替换自动配置或者禁用特定的自动配置来实现自定义应用的配置。Spring Boot应用还涉及到Spring Beans和依赖注入的知识点,这是Spring...