`

Spring 简单案例(spring profile)_03

阅读更多
     我使用的是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 (){
		
	}
	
}

1
0
分享到:
评论

相关推荐

    profile_java

    - **Spring Framework**:提供了强大的配置文件管理功能,支持多种格式,并能够自动加载和管理配置。 - **Apache Commons Configuration**:提供了一个统一的 API 来读取多种格式的配置文件。 #### 4. 音频属性、...

    JavaEE spring IoC入门案例

    通过学习和实践这个"JavaEE spring IoC入门案例",你将能够理解并掌握如何在Spring框架下实现IoC,从而提高你的JavaEE开发能力。深入理解和运用这些知识点,可以让你在实际项目中编写出更加健壮、易维护的代码。

    spring_case.zip

    这个案例可能包含了一个简单的Spring配置文件,展示了如何定义Bean、配置依赖注入,以及如何启动Spring容器并使用Bean。读者可以动手运行此案例,体验从XML配置到注解配置的过程,进一步理解IOC和DI的工作原理。 五...

    Spring IOC案例

    Spring IOC案例通常包括以下几个关键步骤: 1. **配置文件**:在XML时代,我们通常会有一个名为`beans.xml`的配置文件,其中定义了Bean的声明。例如: ```xml <!-- 这里可以配置属性、依赖等 --> ``` 或者...

    spring boot 案例

    ### Spring Boot 案例详解 #### 知识点一:Spring Boot 入门与启动配置 **描述:** Spring Boot 是一个简化 Spring 应用程序开发的框架,它简化了配置过程,允许开发者快速搭建应用程序。本章节将介绍如何使用 ...

    spring-test

    《Spring Test:深入理解与实践》 在Java开发领域,Spring框架无疑是最为广泛使用的轻量级框架之一,而Spring Test则是Spring框架的重要组成部分,它为开发者提供了强大的单元测试和集成测试工具。本文将深入探讨...

    spring注解开发--Bean加载控制.zip

    在Spring框架中,注解开发已经成为了主流,极大地简化了配置和bean的管理。本教程主要探讨的是如何在Spring中通过注解来控制Bean的加载,以实现更加灵活的依赖注入和应用程序控制。我们将深入理解以下几个核心概念:...

    Spring Boot核心技术-笔记

    本篇笔记将介绍Spring Boot的核心概念、微服务架构、环境准备、入门案例以及相关开发工具的配置方法。 1. Spring Boot简介 Spring Boot是由Pivotal团队提供的开源框架,它使用“约定优于配置”的原则,旨在简化...

    Spring Boot核心技术.rar

    入门案例通常包括创建一个简单的Spring Boot应用,配置主类(使用@SpringBootApplication注解),添加依赖(如Web、Data JPA等),编写RESTful API,以及使用Spring Boot的命令行运行器启动应用。 以上这些知识点...

    spring4+mybatis3+合集

    在依赖注入方面,Spring4提供了更强大的功能,例如使用@Profile注解实现环境特定的配置,使用@Autowired注解自动装配bean,以及使用@Qualifier注解精确匹配bean。 二、Mybatis3简介 Mybatis3相较于前一个版本,...

    JavaEE Spring IoC注解

    JavaEE Spring 框架是企业级应用开发的首选之一,其核心特性之一就是Inversion of Control(IoC,控制反转)容器。...实践是掌握知识的关键,所以建议你仔细研究这个测试案例,以便更好地掌握Spring的注解驱动IoC机制。

    【翻译】spring配置全书(下)——附PDF完整版下载

    10. **Spring Boot**:简化了Spring应用的初始搭建和运行过程,通过内置的Tomcat服务器和自动配置特性,使得创建独立的、生产级别的Spring应用变得简单。 阅读《Spring配置全书》下篇,你将能深入理解Spring框架的...

    spring 注解 优化

    本篇文章将深入探讨如何利用Spring注解进行优化,以及相关的实践案例。 1. **@Component, @Service, @Repository 和 @Controller** 这四个注解是Spring中的组件扫描注解,它们用于标记不同类型的bean。`@Component...

    springboot知识点整理

    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 ...

    spring3.1 api

    本文将围绕Spring 3.1 API进行详细讲解,结合实际案例,帮助开发者深入理解和应用。 1. **AOP(面向切面编程)增强** Spring 3.1对AOP进行了优化,支持@Profile注解,使得开发者可以根据不同的运行环境加载不同的...

    springboot通过@Profile注解配置不同环境

    在本案例中,我们将深入探讨如何使用`@Profile`注解以及结合Maven来实现多环境配置。 首先,`@Profile`注解用于标记一个类或方法,表示该类或方法只在指定的环境中生效。例如,我们可以为开发环境创建一个`...

    Hibernate3.1.2使用说明(中文)\Struts in Action(中文)\Spring开发指南

    6. 自动装配与Profile:介绍自动装配Bean属性的机制,以及根据环境选择不同配置的Profile功能。 7. 测试支持:讲解如何使用Spring Test进行单元测试和集成测试。 8. Spring Boot:简述Spring Boot的快速开发特性,...

    springboot实现maven打包加载不同环境的方式二

    当前案例中包含一整套的代码和word文档,非常适合新手代码简单易懂; 主要是通过maven打包加载不同环境的properties文件 然后将对于的属性绑定到指定的实体对象中;然后通过调用接口可以看到加载不同环境控制台打印的...

    v2_20200428.zip

    《Spring Boot 2.x》是针对Java开发者的权威指南,主要涵盖了Spring Boot 2.x版本的核心概念、配置、开发实践及应用案例。Spring Boot作为Spring框架的延伸,旨在简化Spring应用的初始搭建以及开发过程,它通过提供...

Global site tag (gtag.js) - Google Analytics