- 【云计算】Cloudify-基于TOSCA规范的开源云应用编排系统
weixin_33711641
数据库jsonpython
1、cloudify-manager-blueprints:https://github.com/cloudify-cosmo/cloudify-manager-blueprints/tree/3.1-build可以选择simple或者openstack-nova-net版本(需要调整)。cloudify-nodecellar-example:https://github.com/cloudify
- 收集整理的openstack java封装 api的第三方实现的选择(转载)
一二追
Apachejclouds地址:http://jclouds.apache.org/guides/openstack/一个开源库,java实现,支持cloudstack,openstack以及各种公有云平台比较成熟完善,Cloudify使用它接入openstackec2官网给的demo比较少,但是给了一个类似javadoc和一个jcloud-example的文档,很多东西要摸索。使用maven导入
- 从项目开发到云端架构(14)
timeson123
云端架构java操作系统shell
4.5CloudifyCloudfoundry作为业务第一个开源的paas,给我们带来了难得的学习和借鉴的机会,得以窥视paas的盒子内部的构造。Cloudfoundry是基于ruby开发的,ruby相比之下比java开发的速度更快,这也是CF发展很快的原因之一把(原因之二,架构稳健,容易扩展)。如果把CF看作是大象,功能齐全,结构完整,那cloudify就是灵活的豹子,号称上手最快的平台。Clo
- Cloudify从项目开发云端架构
Stephen@Tang
云端cloudify
4.5CloudifyCloudfoundry作为业务第一个开源的paas,给我们带来了难得的学习和借鉴的机会,得以窥视paas的盒子内部的构造。Cloudfoundry是基于ruby开发的,ruby相比之下比java开发的速度更快,这也是CF发展很快的原因之一把(原因之二,架构稳健,容易扩展)。如果把CF看作是大象,功能齐全,结构完整,那cloudify就是灵活的豹子,号称上手最快的平台。Clo
- Cloudify 学习(四):通过Cloudify的蓝图来创建第一个deployment,由k8s生成这个容器-容器编排
[shenhonglei]
KubernetesCloudifydockerCloudify从入门到实践
Cloudify4.5.0和Kubernetes1.13.0进行混合容器编排demodemo背景LocalBlueprint的编写激动人心的时刻开始了,创建tomcat容器demo背景Cloudify4.5.0和Kubernetes1.13.0进行混合容器编排demo是基于前面两篇文章的环境而继续.1.安装k8s1.13.02.安装Cloudify4.5.03.Cloudify对接K8sLocal
- 初识Ansible
破海葬天灭地
本人由于接手了某公有云devops项目的ops一端的求助,关于自动化部署的。最终经过N久的选项,筛选。最终进入我眼帘的就是Ansible。什么是Ansible?曾比较火的部署工具pupet,cloudify,saltstack.....他们的特色,出来了很久了,需要在目标机装agent。但是对于运维人员来讲,特别是某openstack的某些项目,几百台,几千台的机器。单单是部署agent,那是要了
- Cloudify:打通应用和基础架构自动化交付的“任督二脉”
liukuan73
devops
http://chuansong.me/n/25430241.Cloudify概况Cloudify是一个开源的云应用编排系统,可以让你的应用自动化在各种不同的云上方便地部署。由GigaSpaces公司(一家总部位于纽约的以色列中间件技术公司)开源。GigaSpace也是Openstack的支持者,经常参与Openstack全球的技术峰会,个人感觉其在技术路线选择上也受到Openstack的影响。具
- 可视化编排蓝图部署应用
Semanteme
CloudifyVMware
目录一、资料下载二、插件配置三、蓝图详解四、部署安装五、结果验证六、问题解决1.脚本错误一、资料下载应用蓝图网盘下载地址(sh,python)链接:https://pan.baidu.com/s/1bwF14BljlacmKVGs9el-TA提取码:odlr二、插件配置cloudify自带插件http://www.getcloudify.org/spec/cloudify/4.5/types.ya
- Cloudify Recipe概念与应用类型Rec…
shanelisy
云计算
剖析Recipe在Cloudify体系里面,Recipe的概念可以理解为对应用配置运行的一系列说明处方,通过这个Recipe处方可以控制应用的安装、启动、运行、监控、扩展,这所有的一切都无需调整应用的代码或者架构。Recipe的一些基本概念:1.一个应用Application是由一组服务Services组成2.一个应用ApplicationRecipe描述的应用Application的名称和它所依
- Cloudify基本介绍
ZhaoYingChao88
Cloudos
介绍Cloudify是开源的云编排框架,管理应用的整个生命周期,主要功能包括:应用编排:blueprint,部署和管理应用维护:工作流,事件和日志管理可插拔:使用插件垒起来的标准:基于TOSCA的DSL(领域描述语言)术语blueprint:cloudify用blueprint来定义应用,blueprint是应用的逻辑展示,包括配置脚本、和其他资源的关联等应用需要的一切;workflow:clou
- cloudify的基础总结
ailinyingai
python
一个与Paas相关的开源平台cloudifycloudify是一个开源的云应用编排系统,可以让你的应用自动化在各种不同的云上方便地部署。从3.0开始,整个技术栈几乎完全转移到了python上面(除了保留一个java开发的组件外)。cloudify是干什么的呢?从蓝图到生产环境,简单来说,就是允许运维和开发人员使用一种语言描述IT拓扑架构,并且部署到任意环境中,确保环境之间的无差异。cloudify
- cloudify印象
anzhuangguai
cloudify是SaaS的一种,是无安装部署应用程序的一种有效,简便的方法。对于应用程序,可以一键部署到多台虚拟机。对于像Mysql/tomcat/webserver这样的程序,通过流程化(使用java编程)的方法,非常容易部署到虚拟机上。cloudify对应的生态圈应该包括:1为cloudify定制的软件2这些软件所属于的市场(marketplace)3与openstack或vmware的结合
- 《手把手安装Cloudify 3.1》
猫过敏
《手把手安装Cloudify3.1》1,准备环境ubuntu12.04LTS:为了方便,我在linode里找一个小机器,最小配置,1G内存的那种,一个月只要10美刀。就现在的情况下,选东京机房速度要快一点。在早上的时候ping值相对比较小一些。最近几天申请东京机器的时候,有可能遇到分配不到的情况,可能是生意太好,只能是多试几次了。我最后把Cloudify3.1CLI,加上CloudifyManag
- 解决在openstack实例中通过wget无法进行下载
无奈的初弦
openstack实例中wget下载失败问题为什么在openstack通过wget无法进行下载,例如$wget-chttp://xxxxx/cloudify-components_3.1.0-ga-b85_amd64.deb
Connectingto10.67.190.221:80...connected.
HTTPrequestsent,awaitingresponse...Readerror(
- Java的8 LongAdders:正确的方法来管理并发计数器
chuanqirensheng20
hqcool.com
接口是一个面向对象设计的核心设计理念。它们被用于多种原因,如使多个特定接口的实现。在这个岗位上,我会潜入如何使用这些在Java6和7,它们如何适用于cloudify,什么是Java8的到来。所以,只是对那些不熟悉的对象,在设计界面是一个合同,一个对象必须履行。如果一个对象声明它实现的接口,那么它需要实现所有该接口中定义的方法。这使得开发商之间的分离的定义(即接口)对象及其实现。通俗的说,如何分离。
- cloudify+openstack 整合配置
愚者00
第一步安装:openstack 参考 http://devstack.org/安装完成 创建一个用户 hello 密码为:123456. 选择所属于项目为demo(其他的项目可以自己创建或者指定). 然后在 下创建自己的密钥对。完成后下载test.pem.第二步安装cloudify 1. 从http://www.cloudifysource.org/ 下载gigaspaces-cloudify-2
- Cloudify+开源云计算部署工具
李航421
Cloudify开源云计算部署工具
Cloudify+开源云计算部署工具开源中国OSC源创会杭州站的活动一如既往地执行OSC源创会“开源、创新”的理念,邀请开源软件作者分享他们的开源作品和技术,并且邀请杭州知名IT企业来分享他们的产品理念以及产品中所用到的技术和开发经验。对其内容详细阅读
- Cloudify从项目开发云端架构
big1980
Cloudify
4.5 Cloudify Cloudfoundry作为业务第一个开源的paas,给我们带来了难得的学习和借鉴的机会,得以窥视paas的盒子内部的构造。Cloudfoundry是基于ruby开发的,ruby相比之下比java开发的速度更快,这也是CF发展很快的原因之一把(原因之二,架构稳健,容易扩展)。如果把CF看作是大象,功能齐全,结构完整,那cloudify就是灵活的豹子,号称上手最快
- cloudify初学者,请教各位大侠些问题
viso8888
1.下载的代码有cloudify-master.zip和gigaspaces-cloudify-2.6.0-ga-b5000.zip,两份代码结构不一样,不清楚这两份代码有什么关系?2.初学者应该怎么入手?3.按照guide的指导,发布本地云,每次在启动webui的时候就失败,原因是什么?日志如下: 2013-08-2711:27:58,695 INFO[org.jini.rio.jsb]-Ser
- Cloudify云启动过程分析及Cloudify Driver开发
chape
IntroductionClouddriver是一个开放的接口,用户可实现该接口开发自己的clouddiver,以支持特定的私有云,或者对公共云环境创建更多细粒度的配置。在创建自己的clouddriver时,需要考虑或调整已有clouddriver配置中的一些项,如下。加载自定义类文件——clouddriver的实现类必须相对启动云的客户端和CloudifyESM管理组件是可用的。当前,对于clo
- Cloudify中安装一个apps后,无法正常apps的问题
xxfigo
Cloudify
我在使用Cloudify2.5GA的过程中遇到一个颇为奇怪问题,跟系统环境变量的设置有关系。问题是,每次我启动Cloudify后,一次执行bootstrap-localcloud------->install-applicationhelloworld后,系统提示安装完全正常,并且安装成功。但是通过浏览器访问的时候,http://localhost:8082/helloworld/ 这个地址tom
- cloudify数据网格拓扑
chape
Cloudify
DataGrid 运行在处理单元实例中的一组space实例。space实例各自相连形成一个space集群。这些space实例间的关系就是数据网格拓扑。DataGridTopologiesPrimaryBackupDataGrid一个服务网格对应一个主实例和一个或多个备份实例。对主实例进行破坏性操作(写入、更新和调用),则同步或异步复制到备份实例中。PartitionedDataGrid每个数据
- cloudify基础组件
chape
Cloudify
BasicComponentsSpace Gigaspaces缓存实例管理内存中的数据对象Execute,Read,Write,TakeandNotify 可以在sapce中对对象调用读、写、使用和注册方法,可以在space中执行发送的任务。在一个查询或模版内指定对象读和使用的标准。ServiceBean servicebean是与space交互的应用程序组件(使用读取、写入、使用和通
- cloudify运行环境
chape
Cloudify
Cloudify的基本部署单元是ProcessingUnit(处理单元),一旦处理单元部署到运行环境(ServiceGrid)。ProcessingUnit完成ProcessingUnit的配置,提供实例到运行环境的基础设施下,并保证它正确运行。 ServiceGrid由下列组件构成:TheGridServiceAgent(GSA) GSA是一个守护进程,能够启动和停
- cloudify启动源码分析
chape
Cloudify
注:cloudifySrcRoot为源代码根目录,cloudifyRoot为cloudify安装目录BootstrapCloud.java(启动云)$cloudifySrcRoot\esc-commands\src\main\java\org\cloudifysource\esc\shell\commands\BootstrapCloud.java/************************
- Cloudify源码分析——ant build解读
hjswust
Cloudify
0.打包成可部署的zip:Cloudifyantcloudify.zip1.准备环境Target:prepare.env——主要完成Xap的准备完成工作:1)删除“./tmp”里的所有文件2)创建新的“./tmp”目录3)查看Xap,${xap.files.tmp.dir}/${xap.installation.dir}-b${gs.build.number}.zip是否存在,将结果存放到appr
- Cloudify REST 脚本
chape
shellCloudify
#!/bin/bash
bootOutput="bl.out"
rm-f$bootOutput//删除b1.out文件
./cloudify.sh"bootstrap-cloudec2">$bootOutput2>&1//运行./cloudify.shbootstrap-cloudec2并将输出到b1.out和标准输入重定向到标准输出。
searchString="Restservic
- Cloudify源码解读
hjswust
以下内容由BarakMerimovich提供,本人仅译与学习。Cloudify由以下几个工程组成:CLI——CloudifyShell,基于KarafCLI框架开发。USM——统一服务管理。在XAP应用服务器内部运行Cloudifyrecipe的Glue。它是一个Spring应用,读服务recipe并且执行recipe中定义的生命周期步骤。同时,它还运行监控、日志和自定义命令。cloudify——
- cloudify-2.5.0配置用户权限和角色
chape
Cloudify
CloudifySecurityCloudifyintroducesanewandexcitingfeature,security. ThisprovidesadiscreteworkenvironmentfordifferentcustomerssharingthesameCloudifyserver,andsupportsrole-basedandresource-basedauthoriza
- 配置-在web management console下展示recipes
chape
Cloudify
TheCloudifyRecipeRepository(cloudify-2.5.0以上版本)CloudifyWebUI新增了一个功能叫reciperepository.默认这个功能是关闭的。 当打开时Cloudifymanager会克隆Cloudifyrecipesrepository到本地磁盘,运行你浏览、修改文件、安装服务和应用。配置这个webui有一个名为“cloudify-webui-c
- 安装数据库首次应用
Array_06
javaoraclesql
可是为什么再一次失败之后就变成直接跳过那个要求
enter full pathname of java.exe的界面
这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe!
注意第一次,使用SQL D
- Weblogic Server Console密码修改和遗忘解决方法
bijian1013
Welogic
在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。
一.修改Console密码
打开weblogic控制台,安全领域 --> myrealm -->&n
- IllegalStateException: Cannot forward a response that is already committed
Cwind
javaServlets
对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码:
protected void doPost() {
if (someCondition) {
sendRedirect();
}
forward(); // Thi
- 基于流的装饰设计模式
木zi_鸣
设计模式
当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。
自定义的类成为装饰类
模仿BufferedReader,对Reader进行包装,体现装饰设计模式
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。
装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系
装饰类因为增强已有对象,具备的功能该
- Linux中的uniq命令
被触发
linux
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。
AD:
uniq [选项] 文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个
- 正则表达式Pattern
肆无忌惮_
Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。
例如,我们需要对QQ号码格式进行检验
规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14}
&nbs
- Oracle高级查询之OVER (PARTITION BY ..)
知了ing
oraclesql
一、rank()/dense_rank() over(partition by ...order by ...)
现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:
select e.ename, e.job, e.sal, e.deptno
from scott.emp e,
(se
- Python调试
矮蛋蛋
pythonpdb
原文地址:
http://blog.csdn.net/xuyuefei1988/article/details/19399137
1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:
IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:
http://www.ibm.com/d
- webservice传递自定义对象时函数为空,以及boolean不对应的问题
alleni123
webservice
今天在客户端调用方法
NodeStatus status=iservice.getNodeStatus().
结果NodeStatus的属性都是null。
进行debug之后,发现服务器端返回的确实是有值的对象。
后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。
本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的
- java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针
百合不是茶
C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:
定义一个指针p来指向a的地址(&是地址符号):
- Eclipse打不开,提示“An error has occurred.See the log file ***/.log”
bijian1013
eclipse
打开eclipse工作目录的\.metadata\.log文件,发现如下错误:
!ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai
- spring aop实例annotation方法实现
bijian1013
javaspringAOPannotation
在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut
AdviceMethods.jav
- [Velocity一]Velocity语法基础入门
bit1129
velocity
用户和开发人员参考文档
http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html
注释
1.行级注释##
2.多行注释#* *#
变量定义
使用$开头的字符串是变量定义,例如$var1, $var2,
赋值
使用#set为变量赋值,例
- 【Kafka十一】关于Kafka的副本管理
bit1129
kafka
1. 关于request.required.acks
request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0,
0表示即不进行确认即返回。
1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中
-1表示根据指定的最少Partition确认后才返回,这个在
Th
- lua统计nginx内部变量数据
ronin47
lua nginx 统计
server {
listen 80;
server_name photo.domain.com;
location /{set $str $uri;
content_by_lua '
local url = ngx.var.uri
local res = ngx.location.capture(
- java-11.二叉树中节点的最大距离
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class MaxLenInBinTree {
/*
a. 1
/ \
2 3
/ \ / \
4 5 6 7
max=4 pass "root"
- Netty源码学习-ReadTimeoutHandler
bylijinnan
javanetty
ReadTimeoutHandler的实现思路:
开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException
这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如
private final ChannelHandler timeoutHandler =
new ReadTim
- jquery验证上传文件样式及大小(好用)
cngolon
文件上传jquery验证
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery1.8/jquery-1.8.0.
- 浏览器兼容【转】
cuishikuan
css浏览器IE
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
daizj
shell$#$?特殊变量
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
$echo $$
运行结果
29949
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个
- 程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!
dcj3sjt126com
unix
翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。
KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原
- android Activity间List传值
dcj3sjt126com
Activity
第一个Activity:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a
- tomcat 设置java虚拟机内存
eksliang
tomcat 内存设置
转载请出自出处:http://eksliang.iteye.com/blog/2117772
http://eksliang.iteye.com/
常见的内存溢出有以下两种:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
------------
- Android 数据库事务处理
gqdy365
android
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事
- Java 打开浏览器
hw1287789687
打开网址open浏览器open browser打开url打开浏览器
使用java 语言如何打开浏览器呢?
我们先研究下在cmd窗口中,如何打开网址
使用IE 打开
D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709
使用火狐打开
D:\software\bin>cmd /c start firefox http://hw1287789
- ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件
justjavac
chromeGooglegoogle apichrome插件
Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice
由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧
- 进程VS.线程
m635674608
线程
资料来源:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点:
多进程模式最大
- Linux下安装MemCached
字符串
memcached
前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n
- java设计模式之--jdk动态代理(实现aop编程)
Supanccy2013
javaDAO设计模式AOP
与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。
&
- Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持
wiselyman
spring 4
2.1 默认方法(default method)
java8引入了一个default medthod;
用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
使用default关键字
Spring 4.2支持加载在默认方法里声明的bean
2.2
将要被声明成bean的类
public class DemoService {