170328、Maven+SpringMVC+Dubbo 简单的入门demo配置
之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程序猿来说,真是一个好消息。最近有时间了,打算做一个demo把dubbo在本地跑起来先。
先copy一段dubbo的介绍哈!DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点(其他的详细介绍可以查看dubbo的官网地址dubbo,写的很详细哒!)。
该demo是基于maven搭建的,项目架构基于SpringMVC,这里忽略Spring的基本配置,着重介绍下dubbo部分的配置,以及dubbo后台管理系统
一、软件环境
1、zookeeper
下载地址:https://zookeeper.apache.org/releases.html 下载最新版的zookeeper,我这里使用的版本是 zookeeper-3.4.8(当前最新版3.5.1)
2、springMVC (maven方式引入)
3、dubbo (maven方式引入)
二、项目搭建
这里我搭建了三个项目,分别为dubbo-api,dubbo-controller,dubbo-service
dubbo-api:主要是接口定义,供controller调用,以及service层去实现该接口,分离这一层的好处就是前段项目调用接口时候,直接调用dubbo-api的接口即可,不需要关注后端如何实现;而service层来具体实现该接口,进行业务逻辑处理,不需要关注 controller层如何调用。
dubbo-controller:主要controller层控制跳转等。
dubbo-service:主要是service实现,结合数据层实现后端业务逻辑处理。
项目搭建完成之后,的结构图如下:
三、项目配置
1、dubbo-api
新建TestService接口类
1
2
3
4
5
6
7
8
9
10
11
12
|
<code class = "hljs java" > package com.dubbo.service; public interface TestService { /** * 测试发消息 * @param name * @return */ public String sayHello(String name); }</code> |
pom.xml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<code class = " hljs xml" ><project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelversion> 4.0 . 0 </modelversion> <groupid>com.dubbo</groupid> <artifactid>dubbo-api</artifactid> <version> 0.0 . 1 -SNAPSHOT</version> <packaging>jar</packaging> <name>dubbo-api</name> <url>http: //maven.apache.org</url> <properties> <project.build.sourceencoding>UTF- 8 </project.build.sourceencoding> </properties> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version> 3.8 . 1 </version> <scope>test</scope> </dependency> </dependencies> </project></code> |
注意: 这个项目最终打包成jar文件,直接maven引入到另外两个项目中
2、dubbo-controller
新建MyController类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<code class = "hljs avrasm" > package com.dubbo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.dubbo.service.TestService; /** * controller * @author hwy * */ @Controller public class MyController { @Autowired private TestService testService; @RequestMapping (value = "/test" ) @ResponseBody public String testSay( @RequestParam (value = "name" ,defaultValue = "" ) String name){ StringBuffer sb = new StringBuffer(); sb.append( "Dubbo: " ).append(testService.sayHello(name)); return sb.toString(); } }</code> |
新建dubbo-config.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo= "http://code.alibabatech.com/schema/dubbo" xsi:schemalocation="http://www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans.xsd http: //code.alibabatech.com/schema/dubbo http: //code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name= "test_consumer" > <dubbo:reference interface = "com.dubbo.service.TestService" id= "testService" check= "false" > </dubbo:reference></dubbo:registry></dubbo:application></beans></code> |
注意:这里作为消费者名称为test_consumer,注释很详细,就不一一介绍了,这个项目最终打包成dubbo-service.war放在tomcat或其他容器中运行。
pom.xml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
<code class = " hljs xml" ><project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelversion> 4.0 . 0 </modelversion> <groupid>com.dubbo</groupid> <artifactid>dubbo-controller</artifactid> <version> 0.0 . 1 -SNAPSHOT</version> <packaging>war</packaging> <name>dubbo-contoller</name> <url>http: //maven.apache.org</url> <properties> <project.build.sourceencoding>UTF- 8 </project.build.sourceencoding> <org.springframework.version> 3.1 . 4 .RELEASE</org.springframework.version> </properties> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version> 3.8 . 1 </version> <scope>test</scope> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>javax.servlet-api</artifactid> <version> 3.1 . 0 </version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>${org.springframework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context-support</artifactid> <version>${org.springframework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>${org.springframework.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>${org.springframework.version}</version> </dependency> <dependency> <groupid>org.codehaus.jackson</groupid> <artifactid>jackson-core-asl</artifactid> <version> 1.9 . 12 </version> </dependency> <dependency> <groupid>org.codehaus.jackson</groupid> <artifactid>jackson-mapper-asl</artifactid> <version> 1.9 . 12 </version> </dependency> <dependency> <groupid>net.sf.json-lib</groupid> <artifactid>json-lib</artifactid> <version> 2.4 </version> <classifier>jdk15</classifier> </dependency> <dependency> <groupid>com.alibaba</groupid> <artifactid>dubbo</artifactid> <version> 2.5 . 3 </version> <exclusions> <exclusion> <artifactid>spring</artifactid> <groupid>org.springframework</groupid> </exclusion> </exclusions> </dependency> <dependency> <groupid>org.apache.zookeeper</groupid> <artifactid>zookeeper</artifactid> <version> 3.3 . 6 </version> <exclusions> <exclusion> <groupid>log4j</groupid> <artifactid>log4j</artifactid> </exclusion> </exclusions> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version> 1.2 . 16 </version> </dependency> <dependency> <groupid>com.github.sgroschupf</groupid> <artifactid>zkclient</artifactid> <version> 0.1 </version> </dependency> <dependency> <groupid>com.dubbo</groupid> <artifactid>dubbo-api</artifactid> <version> 0.0 . 1 -SNAPSHOT</version> </dependency> </dependencies> <build> <finalname>dubbo-controller</finalname> </build> </project></code> |
3、dubbo-service
新建TestServiceImpl类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<code class = "hljs java" > package com.dubbo.service.impl; import com.dubbo.service.TestService; /** * service impl * @author hwy * */ public class TestServiceImpl implements TestService{ public String sayHello(String name) { return name + " service2 say hello word service2!" ; } }</code> |
新建applicationContext.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:p= "http://www.springframework.org/schema/p" xmlns:dubbo= "http://code.alibabatech.com/schema/dubbo" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans- 3.1 .xsd http: //code.alibabatech.com/schema/dubbo http: //code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name= "test_provider" > <dubbo:protocol name= "dubbo" port= "20880" > <dubbo:service interface = "com.dubbo.service.TestService" ref= "testService" > <bean id= "testService" class = "com.dubbo.service.impl.TestServiceImpl" > </bean></dubbo:service></dubbo:protocol></dubbo:registry></dubbo:application></beans></code> |
注意:这里作为服务提供者名称为test_provider,注释很详细,就不一一介绍了,这个项目最终打包成dubbo-service.war放在tomcat或其他容器中运行,跟其他直接通过ClassPathXmlApplicationContext 启动方式稍微有点区别。
pom.xml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
<code class = " hljs xml" ><project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > <modelversion> 4.0 . 0 </modelversion> <groupid>com.dubbo</groupid> <artifactid>dubbo-service</artifactid> <packaging>war</packaging> <version> 0.0 . 1 -SNAPSHOT</version> <name>dubbo-service Maven Webapp</name> <url>http: //maven.apache.org</url> <properties> <project.build.sourceencoding>UTF- 8 </project.build.sourceencoding> <spring.vesion> 3.1 . 4 .RELEASE</spring.vesion> </properties> <dependencies> <dependency> <groupid>com.alibaba</groupid> <artifactid>dubbo</artifactid> <version> 2.5 . 3 </version> <exclusions> <exclusion> <artifactid>spring</artifactid> <groupid>org.springframework</groupid> </exclusion> </exclusions> </dependency> <dependency> <groupid>org.apache.zookeeper</groupid> <artifactid>zookeeper</artifactid> <version> 3.4 . 6 </version> <exclusions> <exclusion> <artifactid>log4j</artifactid> <groupid>log4j</groupid> </exclusion> </exclusions> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version> 1.2 . 17 </version> </dependency> <dependency> <groupid>com.github.sgroschupf</groupid> <artifactid>zkclient</artifactid> <version> 0.1 </version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-aop</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-asm</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-aspects</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context-support</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-expression</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-instrument</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-instrument-tomcat</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.aspectj</groupid> <artifactid>aspectjweaver</artifactid> <version> 1.6 . 9 </version> </dependency> <dependency> <groupid>commons-pool</groupid> <artifactid>commons-pool</artifactid> <version> 1.5 . 3 </version> </dependency> <dependency> <groupid>commons-collections</groupid> <artifactid>commons-collections</artifactid> <version> 3.2 </version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-jms</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-oxm</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc-portlet</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-struts</artifactid> <version>${spring.vesion}</version> </dependency> <dependency> <groupid>commons-httpclient</groupid> <artifactid>commons-httpclient</artifactid> <version> 3.1 </version> </dependency> <dependency> <groupid>com.dubbo</groupid> <artifactid>dubbo-api</artifactid> <version> 0.0 . 1 -SNAPSHOT</version> </dependency> </dependencies> <build> <finalname>dubbo-service</finalname> </build> </project> </code> |
好了,经过这么配置之后,我们的项目编码配置部分就大功告成了!
maven编译下三个项目,将dubbo-controller和dubbo-service放到tomcat容器中,启动tomcat容器! 出错啦! 为啥容器不起来!那是因为我们还少了主要的一步,那就是配置启动zookeeper,不然dubbo去zookeeper注册中心暴露服务地址不成功啦!
四、配置启动zookeeper
将下载的zookeeper压缩包,解压到一个磁盘目录上去,这里我指定的位置:D:\hwy\zookeeper-3.4.8,我们可以通过启动D:\hwy\zookeeper-3.4.8\bin\zkServer.cmd直接启动默认配置,默认端口为2181,当然我们也可以指定其他的配置,打开D:\hwy\zookeeper-3.4.8\conf\zoo.cfg,这个是zookeeper配置文件的位置,我们这里在指定一下数据目录以及数据日志目录
1
2
|
<code class = "hljs tex" >dataDir=D:\\hwy\\www\\zookeeper\\data dataLogDir=D:\\hwy\\www\\zookeeper\\log</code> |
启动zookeeper!
再次启动tomcat容器,是不是就成功啦!我们来访问下http://127.0.0.1:8090/dubbo-controller/test?name=hwy,看下返回结果是不是正确啦!
好啦!经过上边的一系列操作,一个Maven+SpringMVC+Dubbo 的demo就配置完成了,但是我们如果管理这些服务提供者以及消费者呢?当然,dubbo给我们提供了现成的后台管理网站,专门管理这些服务,应用,路由规则,动态配置,访问控制、权重控制、负载均衡等等,还可以查看系统日志,系统状态,系统环境等等,功能很是强大,通过这个后台,可以可视化控制你的服务和应用。
接下来我们来简单的看看后台系统,以及简单修改下权重控制啥的看看效果吧!我们将dubbo-admin-2.5.3.war包放到tomcat容器中,启动tomcat容器,访问http://127.0.0.1:8080/dubbo-admin-2.5.3
一、登录
注意:用户名和密码默认为root,当然为了安全起见,线上必须更改这个用户名和密码,
二、首页
注意:我们看到红色区域,里面显示 服务数:1 应用数:2 提供者数:1 消费者数:1 。
这就是刚刚我们启动的那个服务1(com.dubbo.service.TestService服务),应用2(test_consumer,test_provider),提供者1(192.168.2.193:20880) 消费者1(192.168.2.193),分别来张截图看看:
1、服务
2、应用
3、提供者
4、消费者
看看,是不是很直观的看到刚刚我们启动的服务,应用,提供者及消费者信息,这里,我们在演示下里面的功能之一权重调节功能,给不同的服务提供者分配不同的权限,看下消费者消费提供者的次数的变化。
为了达到演示效果,我将dubbo-service项目在复制一份放到tomcat里面去,并将TestServiceImpl类修改下sayHello()方法,并修改dubbo暴露端口号,通过输出不同信息,判断消费者调用哪个服务提供者提供的服务。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<code class = "hljs java" > package com.dubbo.service.impl; import com.dubbo.service.TestService; /** * service impl * @author hwy * */ public class TestServiceImpl implements TestService{ public String sayHello(String name) { return name + " say hello word!" ; } }</code> |
接着,我们在修改下dubbo的暴漏端口号,修改applicationContext.xml里面的
1
|
<code class = "hljs xml" ><dubbo:protocol name= "dubbo" port= "20881" ></dubbo:protocol></code> |
好了,我们在重新启动tomcat,继续访问http://127.0.0.1:8080/dubbo-admin-2.5.3,我们能看到提供者里面,已经有我们刚新加的192.168.2.193:20881服务提供者啦!
这个时候我们在访问http://127.0.0.1:8090/dubbo-controller/test?name=hwy,当我们刷新时,返回的结果中除了上面截图返回的结果,也会返回刚新修改的返回结果,而且多刷新几次,两种结果出现的几率是一样哒!因为这里的提供者权重是一样的。
现在,我们修改这2个提供者的权重,我们让192.168.2.193:20881的权重降一半即50,另一个192.168.2.193:20880提高到200,我们在来刷新多次,看下返回的两种结果出现的几率是不是1:4。亲测,是哒!!!
好了,上边只是简单介绍了这个后台管理系统,里面还有很多很强大的功能,我也暂时还没完全玩转,大家一起尝试下,分享下吧!
dubbo是一个很强大的分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,我用到的只是冰山一角,他的更多功能,大家一起研究下吧!
170328、Maven+SpringMVC+Dubbo 简单的入门demo配置的更多相关文章
- Maven+SpringMVC+Dubbo 简单的入门demo配置
转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...
- maven+springmvc+dubbo+zookeeper
为什么要用dubbo? 还是让官方来解释吧: http://dubbo.io/User+Guide-zh.htm http://dubbo.io/ 一般 nginx+tomcat ...
- 关于Maven+Springmvc+Dubbo+Zookeeper整合
为什么要用dubbo? 还是让官方来解释吧: http://dubbo.io/User+Guide-zh.htm http://dubbo.io/ 一般 nginx+tomcat | - ...
- Dubbo与Zookeeper、Spring整合使用 maven+springmvc+dubbo+zookeeper
为什么要用dubbo? 还是让官方来解释吧: http://dubbo.io/User+Guide-zh.htm http://dubbo.io/ 一般 nginx+tomcat | - ...
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- IntelliJ IDEA maven springmvc+shiro简单项目
搭建springmvc简单步骤如:http://www.cnblogs.com/grasp/p/9045242.html,这点就不在描述了. 新建和设置完工程的目录后,结构如下: pom.xml文件内 ...
- .net core api +swagger(一个简单的入门demo 使用codefirst+mysql)
前言: 自从.net core问世之后,就一直想了解.但是由于比较懒惰只是断断续续了解一点.近段时间工作不是太忙碌,所以偷闲写下自己学习过程.慢慢了解.net core 等这些基础方面学会之后再用.n ...
- IDEA下将dubbo简单项目跑Demo(2019.12版)
项目架构(聚合项目,父子模块) src没用,所以删去 选择maven项目,不用勾选模板骨架,直接main方法,因为不用到服务器 顺序是按照:添加pom依赖-接口实现类-配置文件 项目环境 IDE:In ...
- 【SSH系列】初识spring+入门demo
学习过了hibernate,也就是冬天,经过一个冬天的冬眠,当春风吹绿大地,万物复苏,我们迎来了spring,在前面的一系列博文中,小编介绍hibernate的相关知识,接下来的博文中,小编将继续介绍 ...
随机推荐
- php回调函数call_user_func和call_user_func_array详解
call_user_func($fun); call_user_func 函数类似于一种特别的调用函数的方法,使用方法如下: 1.调用 普通函数: <?php function a($b, $c ...
- php从memcache读取数据再批量写入mysql的方法
这篇文章主要介绍了php从memcache读取数据再批量写入mysql的方法,可利用memcache缓解服务器读写压力,并实现数据库数据的写入操作,非常具有实用价值,需要的朋友可以参考下. 用 Mem ...
- atitit.为什么笔记本跟个手机不能组装而pc可以
atitit.为什么笔记本跟个手机不能组装而pc可以 1. 标准程度差 1 2. 为什么标准程度差 1 3. 第一个答案是「能」.第二个答案是「麻烦」. 2 4. 为什么手机不能自定义组装 3 1. ...
- atitit.产品console 日志的aticonsole 方案处理总结
atitit.产品console 日志的aticonsole 方案处理总结 1. 主要原理流程 1 2. 调用代码 1 3. 内部主要实现 1 3.1. 放入消息 1 3.2. 读取消息 2 默认可以 ...
- 有关View的几个基础知识点-IOS开发
转自:http://blog.csdn.net/iukey/article/details/7083165 我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是 ...
- vue-tree
vue-tree vue 编写的树形菜单,小巧实用,支持vue1.0,vue2.0 v1.0 功能: 1.支持多级树目录 2.支持高亮点击的节点 3.支持展开点击节点 4.支持点击收缩节点时收缩所有子 ...
- try与catch
首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说:try{int i = 1/0;}catch(Exception e){........}一个计算 ...
- 一款基于jQuery的全屏广告图片焦点图
之前为大家分享了很多jQuery焦点图插件.今天我们要介绍的这款jQuery全屏广告图片焦点图插件也非常不错,图片切换时有淡出淡出的动画效果,并且也相当流畅.效果图如下: 在线预览 源码下载 实现 ...
- C语言 · 利息计算
算法提高 利息计算 时间限制:1.0s 内存限制:512.0MB 编制程序完成下述任务:接受两个数,一个为用户一年期定期存款金额,一个为按照百分比格式表示的利率:程序计算一年期满 后 ...
- hdu6153 扩展kmp求一个字符串的后缀在另一个字符串出现的次数。
/** 题目:hdu6153 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6153 题意:给定两个串,求其中一个串t的每个后缀在另一个串s中出现的次数乘以 ...