我使用的是spring4.x,这里也只讨论spring4的新特性。
spring profile 我个人理解其实就是为了在不同情况下,使用不同的方案。个人情况,想怎么用就怎么用呗。
废话不多说直接上代码,首先是配置文件:
package com.expect.oa.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.expect.oa.*")
//@ComponentScan(basePackages={"com.expect.oa.DI.*","com.expect.oa.DI2.*"})//多个包可以这样写
public class SpringConfig {
}
然后创建几个类,这里逻辑有必要说几句,有两个类都能够构造出一个同一个类,这样spring会报错,但是我们这里用了profile,这时候要看激活了哪一种方案就会用哪一种方案去构造。我这语言表达能力真狗屎,这我知道 ,还是看代码吧:
package com.expect.oa.profile;
//这是一个类,分别可以被类A,类B构造出来。
public class ProEntity {
public ProEntity(String pro) {
System.out.println(pro);
}
}
下面是类A,用于构造上面类的类,这样说心真的好累,哈哈:
package com.expect.oa.profile;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile(value={"profileA"})//注意这里哦,这里生命了A方案哦
public class Profile_A {
@Bean
public ProEntity getProEntity (){
return new ProEntity("这是A方案");
}
}
下面是类B,也是用于构造上上个类的,心好累,上代码:
package com.expect.oa.profile;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile(value={"profileB"})//注意这里哦,这里声明了B方案哦
public class Profile_B {
@Bean
public ProEntity getProEntity (){
return new ProEntity("这是B方案");
}
}
好了,我们测试吧:
package com.expect.oa.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.expect.oa.config.SpringConfig;
import com.expect.oa.profile.ProEntity;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class})
@ActiveProfiles(value={"profileB"})//注意这里哦,这里激活了B方案哦。当然你也可以激活A
public class TestProfile {
@Autowired
ProEntity pEntity;
@Test
public void testProfile (){
}
}
分享到:
相关推荐
- **Spring Framework**:提供了强大的配置文件管理功能,支持多种格式,并能够自动加载和管理配置。 - **Apache Commons Configuration**:提供了一个统一的 API 来读取多种格式的配置文件。 #### 4. 音频属性、...
通过学习和实践这个"JavaEE spring IoC入门案例",你将能够理解并掌握如何在Spring框架下实现IoC,从而提高你的JavaEE开发能力。深入理解和运用这些知识点,可以让你在实际项目中编写出更加健壮、易维护的代码。
这个案例可能包含了一个简单的Spring配置文件,展示了如何定义Bean、配置依赖注入,以及如何启动Spring容器并使用Bean。读者可以动手运行此案例,体验从XML配置到注解配置的过程,进一步理解IOC和DI的工作原理。 五...
Spring IOC案例通常包括以下几个关键步骤: 1. **配置文件**:在XML时代,我们通常会有一个名为`beans.xml`的配置文件,其中定义了Bean的声明。例如: ```xml <!-- 这里可以配置属性、依赖等 --> ``` 或者...
### Spring Boot 案例详解 #### 知识点一:Spring Boot 入门与启动配置 **描述:** Spring Boot 是一个简化 Spring 应用程序开发的框架,它简化了配置过程,允许开发者快速搭建应用程序。本章节将介绍如何使用 ...
《Spring Test:深入理解与实践》 在Java开发领域,Spring框架无疑是最为广泛使用的轻量级框架之一,而Spring Test则是Spring框架的重要组成部分,它为开发者提供了强大的单元测试和集成测试工具。本文将深入探讨...
在Spring框架中,注解开发已经成为了主流,极大地简化了配置和bean的管理。本教程主要探讨的是如何在Spring中通过注解来控制Bean的加载,以实现更加灵活的依赖注入和应用程序控制。我们将深入理解以下几个核心概念:...
本篇笔记将介绍Spring Boot的核心概念、微服务架构、环境准备、入门案例以及相关开发工具的配置方法。 1. Spring Boot简介 Spring Boot是由Pivotal团队提供的开源框架,它使用“约定优于配置”的原则,旨在简化...
入门案例通常包括创建一个简单的Spring Boot应用,配置主类(使用@SpringBootApplication注解),添加依赖(如Web、Data JPA等),编写RESTful API,以及使用Spring Boot的命令行运行器启动应用。 以上这些知识点...
在依赖注入方面,Spring4提供了更强大的功能,例如使用@Profile注解实现环境特定的配置,使用@Autowired注解自动装配bean,以及使用@Qualifier注解精确匹配bean。 二、Mybatis3简介 Mybatis3相较于前一个版本,...
JavaEE Spring 框架是企业级应用开发的首选之一,其核心特性之一就是Inversion of Control(IoC,控制反转)容器。...实践是掌握知识的关键,所以建议你仔细研究这个测试案例,以便更好地掌握Spring的注解驱动IoC机制。
10. **Spring Boot**:简化了Spring应用的初始搭建和运行过程,通过内置的Tomcat服务器和自动配置特性,使得创建独立的、生产级别的Spring应用变得简单。 阅读《Spring配置全书》下篇,你将能深入理解Spring框架的...
- **入门示例**:提供一个简单的AOP入门示例,演示如何使用Spring来实现AOP的基本功能。 #### 5.3 基于Schema的AOP - **配置方式**:介绍如何通过XML配置文件来实现AOP。 - **示例代码**:给出具体的XML配置示例。...
本篇文章将深入探讨如何利用Spring注解进行优化,以及相关的实践案例。 1. **@Component, @Service, @Repository 和 @Controller** 这四个注解是Spring中的组件扫描注解,它们用于标记不同类型的bean。`@Component...
1.5 入门案例详解 11 1.5.1 POM文件 11 1.5.2 主程序类,主入口类 12 1.6 使用Spring Initializer向导快速创建Spring Boot 16 2 Spring Boot配置 18 2.1 配置文件 18 2.2 YML语法 19 2.3 YML配置文件值获取 21 2.4 ...
本文将围绕Spring 3.1 API进行详细讲解,结合实际案例,帮助开发者深入理解和应用。 1. **AOP(面向切面编程)增强** Spring 3.1对AOP进行了优化,支持@Profile注解,使得开发者可以根据不同的运行环境加载不同的...
在本案例中,我们将深入探讨如何使用`@Profile`注解以及结合Maven来实现多环境配置。 首先,`@Profile`注解用于标记一个类或方法,表示该类或方法只在指定的环境中生效。例如,我们可以为开发环境创建一个`...
6. 自动装配与Profile:介绍自动装配Bean属性的机制,以及根据环境选择不同配置的Profile功能。 7. 测试支持:讲解如何使用Spring Test进行单元测试和集成测试。 8. Spring Boot:简述Spring Boot的快速开发特性,...
当前案例中包含一整套的代码和word文档,非常适合新手代码简单易懂; 主要是通过maven打包加载不同环境的properties文件 然后将对于的属性绑定到指定的实体对象中;然后通过调用接口可以看到加载不同环境控制台打印的...
《Spring Boot 2.x》是针对Java开发者的权威指南,主要涵盖了Spring Boot 2.x版本的核心概念、配置、开发实践及应用案例。Spring Boot作为Spring框架的延伸,旨在简化Spring应用的初始搭建以及开发过程,它通过提供...