为什么说是实用精简版,没办法,工作太忙压力大啊,菜是原罪啊,所以接下来写的一些博客可能都是更偏实用性,精简点,方便自己回顾,快速上手使用即可,毕竟感觉不详细还有书不是吗。

  profile是用来干什么的?简单来说,就是现实需求中,不同环境下我们所要的某个bean可能会有所不同。

  1. 配置profile bean

    可以使用@Profile注解指定某个bean属于哪个profile。比如下雨天时我需要的工具是雨伞,所以可以如下配置:

  1. @Configuration
  2. @Profile("rainyday")
  3. public class RainyDayConfig {
  4. @Bean
  5. public Tool tool() {
  6. return new Umbrella(); //假设Umbrella继承了Tool
  7. }
  8. }

  这里@Profile注解用在了类级别上,表明只有rainyday profile激活时,这个配置类中的bean才会被创建,相反,当rainyday profile没有被激活时,带有@Bean注解的方法会被忽略。同理,现在晴天时,我可能需要阳伞,可如下配置:

  1. @Configuration
  2. @Profile("sunnyday")
  3. public class SunnyDayConfig {
  4. @Bean
  5. public Tool tool() {
  6. return new Sunshade(); //假设Sunshade继承了Tool
  7. }
  8. }

    与下雨天(rainyday)一样,上面这段配置类中使用@Bean注解的方法也只有在sunnyday profile激活时,才可以生效。

  不过这个还是有点麻烦,需要两个配置类,这是Spring 3.1中的唯一写法,但是Spring 3.2之后,就可以这样写了,如下:

  1. @Configuration
  2. public class ToolConfig {
  3. @Bean
  4. @Profile("rainyday")
  5. public Tool umbrellaTool() {
  6. return new Umbrella(); //假设Umbrella继承了Tool
  7. }
  8.  
  9. @Bean
  10. @Profile("sunnyday")
  11. public Tool sunshadeTool() {
  12. return new Sunshade(); //假设Sunshade继承了Tool
  13. }
  14.  
  15. @Bean
  16. public Shoes shoes() {
  17. return new Shoes();
  18. }
  19. }

  这样是不是就方便多了,我只需要一个配置类,需要注意的是,umbrellaTool方法只会在下雨天(rainyday)profile激活时生效并创建bean,sunshadeTool方法只会在晴天(sunnyday)profile激活时生效并创建bean,而shoes方法没有指定profile,它会始终生效并创建bean。

  上面这些都是使用JavaConfig类方式在声明profile,其实也可在XML中配置profile bean,只需在<beans>标签中添加profile属性即可,这里不详细介绍了,可参考书。

2. 激活profile

  profile是配置好了,但是怎么激活profile呢?别急,下面讲的就是这些啦

03-Spring profile实用精简版介绍的更多相关文章

  1. [原创]spring及springmvc精简版--AOP

    接上一篇:[原创]spring及springmvc精简版--IOC 理解AOP.java是一种面向对象的语言.而AOP是面向切面,在我看来是面向逻辑或者业务编程,它是对一组逻辑的抽象和分配. 经典例子 ...

  2. [原创]spring及springmvc精简版--IOC

    本篇博客为自己学习spring和springmvc的一个总结.主要以代码为主,至于文字性描述理解性东西,可以自行百度.有认识不妥的地方,还望指出,相互学习. 以前很困惑spring中的一些概念,在学习 ...

  3. [原创]spring及springmvc精简版--继承数据源,声明式事物

    1.前期:导入c3p0 jar包,相关数据库连接jar包,我用的是mysql 2.关注事物管理器的配置和AOP配置 代码: 核心关注bean配置文件 application.xml <?xml ...

  4. Mac系统Snail SVN 精简版配置比较、合并工具:Beyond Compare及破解

    Mac系统 Beyond Compare及破解 前言 在上一篇文章:Mac系统的SVN客户端:Snail SVN 精简版 介绍了在mac系统中svn客户端使用的是snail svn,但是当我想要把本地 ...

  5. TeamViewer12.0.71503(远程控制软件)精简版 单文件企业版介绍

    TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...

  6. TeamViewer12.0.71503(远程控制软件)精简版单文件企业版介绍

    TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...

  7. Spring实战第4版PDF下载含源码

    下载链接 扫描右侧公告中二维码,回复[spring实战]即可获取所有链接. 读者评价 看了一半后在做评论,物流速度挺快,正版行货,只是运输过程有点印记,但是想必大家和你关注内容,spring 4必之3 ...

  8. Maven 整合 spring profile实现多环境自动切换

    Maven 整合 spring profile实现多环境自动切换 时间:2014-03-19 15:32来源:Internet 作者:Internet 点击:525次 profile主要用在项目多环境 ...

  9. 电脑公司最新GHOST WIN7系统32,64位优化精简版下载

    系统来自系统妈:http://www.xitongma.com 电脑公司最新GHOST win7系统32位优化精简版V2016年3月 系统概述 电脑公司ghost win7 x86(32位)万能装机版 ...

随机推荐

  1. 运行时动态伪造vsprintf的va_list

    运行时动态伪造vsprintf的va_list #include <stdio.h> int main() { char* m = (char*) malloc(sizeof(int)*2 ...

  2. 从零开始学习 asp.net core 2.1 web api 后端api基础框架(三)-创建Data Transfer Object

    原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(三)-创建Data Transfer Object 版权声明:本文为博主原创文章,未经博主允许不得转载. ht ...

  3. react学习(6)——关于组件生命周期的问题

    在项目开发的过程中,遇到了一个问题: 父组件请求后台数据,收到后将数据以props传给子组件,子组件根据收到数据的不同,显示不同的内容,同时,子组件自身可以根据click操作改变根据父组件的数据显示的 ...

  4. x:ArrayExtension

    <Window.Resources> <x:ArrayExtension x:Key="array" Type="{x:Type sys:Int32}& ...

  5. datacontract helper

    public static class DataContractHelper { public static void ToDCFile<T>(this T obj, string pat ...

  6. __declspec的15种用法

    __cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要 ...

  7. QML中实现setTimeout和setInterval

    Qt的QML中,js未提供setTimeout和setInterval,可以通过下面的代码实现. Timer {id: timer} function setTimeout(cb,delayTime) ...

  8. SQL 修改主键约束

    原文:SQL 修改主键约束 今天在学习数据库的时候遇到一个关于如何修改主键约束的问题,抄录下来以供备用. --修改主键约束用SQL --获取主键约束名字 declare @csname varchar ...

  9. Win10《芒果TV - Preview》官方指定预览版 - 重要使用注意事项

    Win10<芒果TV - Preview>官方指定预览版,最新的改进和功能更新将会此版本优先体验. 重要使用注意事项: 1.因为方便过审核,默认将会员相关的操作提示简化: 2.使用中务必手 ...

  10. Android零基础入门第74节:Activity启动和关闭

    上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学习如何启动和关闭Activity. 一.概述 经 ...