03-Spring profile实用精简版介绍
为什么说是实用精简版,没办法,工作太忙压力大啊,菜是原罪啊,所以接下来写的一些博客可能都是更偏实用性,精简点,方便自己回顾,快速上手使用即可,毕竟感觉不详细还有书不是吗。
profile是用来干什么的?简单来说,就是现实需求中,不同环境下我们所要的某个bean可能会有所不同。
1. 配置profile bean
可以使用@Profile注解指定某个bean属于哪个profile。比如下雨天时我需要的工具是雨伞,所以可以如下配置:
@Configuration
@Profile("rainyday")
public class RainyDayConfig {
@Bean
public Tool tool() {
return new Umbrella(); //假设Umbrella继承了Tool
}
}
这里@Profile注解用在了类级别上,表明只有rainyday profile激活时,这个配置类中的bean才会被创建,相反,当rainyday profile没有被激活时,带有@Bean注解的方法会被忽略。同理,现在晴天时,我可能需要阳伞,可如下配置:
@Configuration
@Profile("sunnyday")
public class SunnyDayConfig {
@Bean
public Tool tool() {
return new Sunshade(); //假设Sunshade继承了Tool
}
}
与下雨天(rainyday)一样,上面这段配置类中使用@Bean注解的方法也只有在sunnyday profile激活时,才可以生效。
不过这个还是有点麻烦,需要两个配置类,这是Spring 3.1中的唯一写法,但是Spring 3.2之后,就可以这样写了,如下:
@Configuration
public class ToolConfig {
@Bean
@Profile("rainyday")
public Tool umbrellaTool() {
return new Umbrella(); //假设Umbrella继承了Tool
} @Bean
@Profile("sunnyday")
public Tool sunshadeTool() {
return new Sunshade(); //假设Sunshade继承了Tool
} @Bean
public Shoes shoes() {
return new Shoes();
}
}
这样是不是就方便多了,我只需要一个配置类,需要注意的是,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实用精简版介绍的更多相关文章
- [原创]spring及springmvc精简版--AOP
接上一篇:[原创]spring及springmvc精简版--IOC 理解AOP.java是一种面向对象的语言.而AOP是面向切面,在我看来是面向逻辑或者业务编程,它是对一组逻辑的抽象和分配. 经典例子 ...
- [原创]spring及springmvc精简版--IOC
本篇博客为自己学习spring和springmvc的一个总结.主要以代码为主,至于文字性描述理解性东西,可以自行百度.有认识不妥的地方,还望指出,相互学习. 以前很困惑spring中的一些概念,在学习 ...
- [原创]spring及springmvc精简版--继承数据源,声明式事物
1.前期:导入c3p0 jar包,相关数据库连接jar包,我用的是mysql 2.关注事物管理器的配置和AOP配置 代码: 核心关注bean配置文件 application.xml <?xml ...
- Mac系统Snail SVN 精简版配置比较、合并工具:Beyond Compare及破解
Mac系统 Beyond Compare及破解 前言 在上一篇文章:Mac系统的SVN客户端:Snail SVN 精简版 介绍了在mac系统中svn客户端使用的是snail svn,但是当我想要把本地 ...
- TeamViewer12.0.71503(远程控制软件)精简版 单文件企业版介绍
TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...
- TeamViewer12.0.71503(远程控制软件)精简版单文件企业版介绍
TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...
- Spring实战第4版PDF下载含源码
下载链接 扫描右侧公告中二维码,回复[spring实战]即可获取所有链接. 读者评价 看了一半后在做评论,物流速度挺快,正版行货,只是运输过程有点印记,但是想必大家和你关注内容,spring 4必之3 ...
- Maven 整合 spring profile实现多环境自动切换
Maven 整合 spring profile实现多环境自动切换 时间:2014-03-19 15:32来源:Internet 作者:Internet 点击:525次 profile主要用在项目多环境 ...
- 电脑公司最新GHOST WIN7系统32,64位优化精简版下载
系统来自系统妈:http://www.xitongma.com 电脑公司最新GHOST win7系统32位优化精简版V2016年3月 系统概述 电脑公司ghost win7 x86(32位)万能装机版 ...
随机推荐
- wordpress如何判断手机、平板还是PC并显示对应的内容-Mobile Detect
wordpress如何判断是手机.平板还是PC访问,并针对性的显示特定的内容?Mobile Detect 这个轻量级PHP 类库能够很好的实现这个功能.而且Mobile Detect也有wordpre ...
- WPF 多路绑定
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- git全程笔记(mac环境) git for mac
一.git的安装 最简单的方式就是直接用git installer安装git(从git官网上下载一个git installler就可以直接安装了),mac上有自带的git,可能版本比较低 后面显示的是 ...
- Win8Metro(C#)数字图像处理--2.15图像霓虹效果
原文:Win8Metro(C#)数字图像处理--2.15图像霓虹效果 [函数名称] 图像霓虹效果函数NeonProcess(WriteableBitmap src) 上述公式进行开方即可. [函 ...
- 动态加载XAML
string FadeInStoryBoard = "<StoryBoard ... />"; StoryBoard storyBoard = XamlReader.L ...
- SQL SERVER中UPDLOCK ,READPAST使用
原文:SQL SERVER中UPDLOCK ,READPAST使用 SQL SERVER中中获取不重复数据: select top 1 * from orders with(UPDLOCK ,READ ...
- xgboost参数及调参
常规参数General Parameters booster[default=gbtree]:选择基分类器,可以是:gbtree,gblinear或者dart.gbtree和draf基于树模型,而gb ...
- QML Settings 小的示例
QML 中使用 Settings 可以保存一些简单的信息,例如用户名,密码,窗口位置,大小等,没有Sqlite那么麻烦,简单易用哦~~~(环境:Qt5.8 for android ,Windows ...
- Qt5---ftp上传功能(可直接克隆某个小模块,查看QT下FTP的socket原理)
http://blog.csdn.net/freeape/article/details/52802163
- PyCharm安装MicroPython插件
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 PyCharm可以说是当今最流行的一款Pyth ...