【Spring】Spring常用配置-Profile

转载请注明出处:http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客

分析

对于Profile先做一个简单的介绍:
单讲profile就是一组配置,不同profile提供不同组合的配置,程序运行时可以选择使用哪些profile来适应环境。

也就是Profile为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的,例如:数据库的配置)

Spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定义 spring.profiles.active 参数激活 profile,下面说下3种方法:
1、通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境。在开发中使用@profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。
2、通过设定jvm的spring.profile.active参数来设置配置环境。
3、Web项目设置在Service的context parameter中。

进行本示例的演示,需要先配置好Maven和Spring哦、
见:
【Spring】基于IntelliJ IDEA搭建Maven

在这里的示例只演示第一种方式的示例哦。

示例

示例Bean

package cn.hncu.p2_4_2Profile;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/14.
 * Time: 下午 8:37.
 * Explain:示例Bean
 */
public class DemoBean {
    public String content;

    public DemoBean(String content) {
        super();
        this.content = content;
    }
    public String getContent(){
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}

Profile配置

package cn.hncu.p2_4_2Profile;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/14.
 * Time: 下午 8:41.
 * Explain:Profile配置
 */
@Configuration
public class ProfileConfig {

    @Bean
    @Profile("dev")//Profile为dev时实例化devDemoBean
    public DemoBean devDemoBean(){
        return new DemoBean("from development profile");
    }

    @Bean
    @Profile("prod")//Profile为prod时实例化prodDemoBean
    public DemoBean prodDemoBean(){
        return new DemoBean("from production profile");
    }
}

运行类

package cn.hncu.p2_4_2Profile;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2016/11/14.
 * Time: 下午 8:51.
 * Explain:运行类
 */
public class Main {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
        context.getEnvironment().setActiveProfiles("prod");//先将活动的Proofile设置为prod
        context.register(ProfileConfig.class);//后置注册Bean的配置类,不然会报Bean未定义的错误
        context.refresh();//刷新容器

        DemoBean demoBean = context.getBean(DemoBean.class);

        System.out.println(demoBean.getContent());

        context.close();
    }
}

运行结果

现在来对Main类做一下改动,将
context.getEnvironment().setActiveProfiles(“prod”)
修改为
context.getEnvironment().setActiveProfiles(“dev”)

结果如下:

项目链接—具体包

转载请注明出处:http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客

时间: 2024-09-19 03:39:58

【Spring】Spring常用配置-Profile的相关文章

Spring常用配置

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52471101作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn   -------------------

《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka的常用配置

一.版本的说明 Angel版本对应Spring Boot 1.2.x,可以使用Spring Boot 1.3.x: Brixton版本对应Spring Boot 1.3.x,可以使用Spring Boot 1.4.x: Camden版本对应Spring Boot 1.4.x,可以使用Spring Boot 1.5.x: Dalston版本对应Spring Boot 1.5.x 二.应用进行热部署 添加依赖: <dependency> <groupId>org.springframe

2.Spring常用配置—1.Bean的Scope

1.点睛 Scope描述的是Spring容器如何新建Bean的实例的.Spring的Scope有以下几种,通过@Scope注解来实现. (1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例. (2)Prototype:每次调用新建一个Bean的实例. (3)Request:Web项目中,给每一个http request新建一个Bean实例. (4)Session:Web项目中,给每一个http session新建一个Bean实例.

【Spring】Spring常用配置-Bean的Scope

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 分析 Scope(范围)描述的是Spring容器如何新建Bean的实例的.可以简单的理解成Bean的作用范围! Spring的Scope有以下的几种,可以通过@Scope注解来实现. 1.singleton:一个Spring容器中只有一个Bean的实例. 这是Spring的默认配置,也就是不写@Scope("singleton"),全容器共享一个实例. 2.prototy

spring mvc-springmvc spring hibernate 怎么配置连接两个数据库

问题描述 springmvc spring hibernate 怎么配置连接两个数据库 persistent.xml配置 <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> <persistence-unit name=&q

详解Spring事务Transaction配置的五种注入方式

前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSource.TransactionManager这两部分只是会根据数据访问方式有所变化,

Spring中如何配置DataSource数据源

在Spring框架中有如下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDataSource获得DataSource. 一.从JNDI获得DataSource SpringJNDI数据源配置信息: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean&qu

Spring Security 2配置精讲 上

安全权限管理手册 http://www.family168.com/oa/springsecurity/html/ 众所周知,Spring Security针对Acegi的一个重大的改进就在于其配置方式大大简化了.所以如果配置还是基于Acegi-1.X这样比较繁琐的配置方式的话,那么我们还不如直接使用Acegi而不要去升级了.所以在这里,我将结合一个示例,重点讨论一下Spring Security 2是如何进行配置简化的. 搭建基础环境 首先我们为示例搭建基本的开发环境,环境的搭建方式,可以参考

Spring MVC的配置

Spring MVC 在Spring的体系中和JdbcTemplate互相独立,分属于不同的jar包,使用默认位置不同的spring配置文件. Spring JdbcTemplate基本上完全可以单独拿来使用.也就是说,假如你在写一个Web项目,而且你打算用纯粹的JSP来实现网页的显示.逻辑处理也完全没有任何问题,你只需要在你的JSP页面中创建Spring JdbcTemplate的对象,使用它的方法,在SpringJdbc环境下编写java的方法,让你的JSP页面去使用这些方法,一点问题没有.