请问spring boot 微信框架、Dubbo、Netty4三个框架要怎样整合呢?

八套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程&&
八套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程
视频课程内容包含:
高级Java架构师包含:Spring boot、Spring &cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Spring、MongoDB、ZeroMQ、Git、Nosql、Jvm、Mecached、Netty、Nio、Mina、性能调优、高并发、tomcat负载均衡、大型电商项目实战、高可用、高可扩展、数据库架构设计、Solr集群与应用、分布式实战、主从复制、高可用集群、大数据等高端视频课程......
技术支持:
1、永久免费提供支持有技术可以技术交流,解决视频中遇到难题,一起进步,构建一个共同交流的平台。
2、永久免费提供视频更新服务,所有的JAVA相关资料都是共享模式的,工作中如果需要某些资料也可以提供,打造一个资源共享的社区。
3、有买家群,不定期更新最新的技术文档,大家可以交流技术和学习方法,有技术难题我们互相交流,有承接项目,我们是一个技术团队,重在构建一个很强大的技术团队,在交流提升技术。
八套目录(以下目录全是视频课程):&
第一套:高级架构师四十二个阶段高端课(150G)& 第二套:Java高级系统培训架构课程148课时(阶段一)(30G)& 第三套:Java高级互联网架构师课程目录(50G)& 第四套:Java互联网架构Netty、Nio、Mina等-视频教程(60G)& 第五套:Java高级架构设计2016整理-视频教程(200G) 第六套:Java架构师进阶篇,高级篇,架构篇-视频教程(250G)& 第七套:Java架构师必修linux运维系列课程(35G) 第八套:高级Java系统培训架构课程(阶段二)(25G)&
被转藏 : 1次
被转藏 : 1次让天下没有难学的技术
Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
“看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然。所以,无论什么事情,仔细想一想,都没有什么大不了的。这能帮助自己在遇到挫折时稳定心态,想得更开。”
– 《腾讯传》
一、为啥整合 Dubbo 实现 SOA
二、运行 springboot-dubbo-server 和 springboot-dubbo-client 工程
三、springboot-dubbo-server 和 springboot-dubbo-client 工程配置详解
一、为啥整合 Dubbo 实现 SOA
Dubbo 不单单只是高性能的 RPC 调用框架,更是 SOA 服务治理的一种方案。
1. 远程通信,向本地调用一样调用远程方法。
2. 集群容错
3. 服务自动发现和注册,可平滑添加或者删除服务提供者。
我们常常使用 Springboot 暴露 HTTP 服务,并走 JSON 模式。但慢慢量大了,一种 SOA 的治理方案。这样可以暴露出 Dubbo 服务接口,提供给 Dubbo 消费者进行 RPC 调用。下面我们详解下如何集成 Dubbo。
二、运行 springboot-dubbo-server 和 springboot-dubbo-client 工程
运行环境:JDK 7 或 8,Maven 3.0+
技术栈:SpringBoot 1.5+、Dubbo 2.5+、ZooKeeper 3.3+
1.ZooKeeper 服务注册中心
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
下载 ZooKeeper ,地址 http://www.apache.org/dyn/closer.cgi/zookeeper
解压 ZooKeeper
tar zxvf zookeeper-3.4.8.tar.gz
在 conf 目录新建 zoo.cfg ,照着该目录的 zoo_sample.cfg 配置如下。
cd zookeeper-3.3.6/conf
vim zoo.cfg
zoo.cfg 代码如下(自己指定 log 文件目录):
tickTime=2000
dataDir=/javaee/zookeeper/data
dataLogDir=/javaee/zookeeper/log
clientPort=2181
在 bin 目录下,启动 ZooKeeper:
cd zookeeper-3.3.6/bin
./zkServer.sh start
2. git clone 下载工程 springboot-learning-example
项目地址见 GitHub – :
git clone :JeffLi1993/springboot-learning-example.git
然后,Maven 编译安装这个工程:
cd springboot-learning-example
mvn clean install
3.运行 springboot-dubbo-server Dubbo 服务提供者工程
右键运行 springboot-dubbo-server 工程 ServerApplication 应用启动类的 main 函数。Console 中出现如下表示项目启动成功:
这里表示 Dubbo 服务已经启动成功,并注册到 ZK (ZooKeeper)中。
4.运行 springboot-dubbo-client Dubbo 服务消费者工程
右键运行 springboot-dubbo-client 工程 ClientApplication 应用启动类的 main 函数。Console 中出现如下:
16:31:38.473
INFO 9896 --- [
main] o.s.j.e.a.AnnotationMBeanExporter
: Registering beans for JMX exposure on startup
16:31:38.538
INFO 9896 --- [
main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081 (http)
16:31:38.547
INFO 9896 --- [
main] org.spring.springboot.ClientApplication
: Started ClientApplication in 6.055 seconds (JVM running for 7.026)
City{id=1, provinceId=2, cityName='温岭', description='是我的故乡'}
最后打印的城市信息,就是通过 Dubbo 服务接口调用获取的。顺利运行成功,下面详解下各个代码及配置。
三、springboot-dubbo-server 和 springboot-dubbo-client 工程配置详解
代码都在 GitHub 上, 。
1.详解 springboot-dubbo-server Dubbo 服务提供者工程
springboot-dubbo-server 工程目录结构
├── pom.xml
└── src
└── main
├── java
└── org
└── spring
└── springboot
├── ServerApplication.java
├── domain
└── City.java
└── dubbo
├── CityDubboService.java
└── impl
└── CityDubboServiceImpl.java
└── resources
└── application.properties
a.pom.xml 配置
pom.xml 中依赖了 spring-boot-starter-dubbo 工程,该项目地址是 。pom.xml 配置如下
&?xml version="1.0" encoding="UTF-8"?&
&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&springboot&/groupId&
&artifactId&springboot-dubbo-server&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&name&springboot-dubbo 服务端:: 整合 Dubbo/ZooKeeper 详解 SOA 案例&/name&
&!-- Spring Boot 启动父依赖 --&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-parent&/artifactId&
&version&1.5.1.RELEASE&/version&
&properties&
&dubbo-spring-boot&1.0.0&/dubbo-spring-boot&
&/properties&
&dependencies&
&!-- Spring Boot Dubbo 依赖 --&
&dependency&
&groupId&io.dubbo.springboot&/groupId&
&artifactId&spring-boot-starter-dubbo&/artifactId&
&version&${dubbo-spring-boot}&/version&
&/dependency&
&!-- Spring Boot Web 依赖 --&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-web&/artifactId&
&/dependency&
&!-- Spring Boot Test 依赖 --&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-test&/artifactId&
&scope&test&/scope&
&/dependency&
&!-- Junit --&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&4.12&/version&
&/dependency&
&/dependencies&
&/project&
b.application.properties 配置
## Dubbo 服务提供者配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=org.spring.springboot.dubbo
这里 ZK 配置的地址和端口,就是上面本机搭建的 ZK 。如果有自己的 ZK 可以修改下面的配置。配置解释如下:
spring.dubbo.application.name 应用名称
spring.dubbo.registry.address 注册中心地址
spring.dubbo.protocol.name 协议名称
spring.dubbo.protocol.port 协议端口
spring.dubbo.scan dubbo 服务类包目录
c.CityDubboServiceImpl.java 城市业务 Dubbo 服务层实现层类
// 注册为 Dubbo 服务
@Service(version = "1.0.0")
public class CityDubboServiceImpl implements CityDubboService {
public City findCityByName(String cityName) {
return new City(1L,2L,"温岭","是我的故乡");
@Service 注解标识为 Dubbo 服务,并通过 version 指定了版本号。
d.City.java 城市实体类
实体类通过 Dubbo 服务之间 RPC 调用,则需要实现序列化接口。最好指定下 serialVersionUID 值。
2.详解 springboot-dubbo-client Dubbo 服务消费者工程
springboot-dubbo-client 工程目录结构
├── pom.xml
└── src
└── main
├── java
└── org
└── spring
└── springboot
├── ClientApplication.java
├── domain
└── City.java
└── dubbo
├── CityDubboConsumerService.java
└── CityDubboService.java
└── resources
└── application.properties
pom.xml 、 CityDubboService.java、City.java 没有改动。Dubbo 消费者通过引入接口实现 Dubbo 接口的调用。
a.application.properties 配置
## 避免和 server 工程端口冲突
server.port=8081
## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=org.spring.springboot.dubbo
因为 springboot-dubbo-server 工程启动占用了 8080 端口,所以这边设置端口为 8081。
b.CityDubboConsumerService.java 城市 Dubbo 服务消费者
@Component
public class CityDubboConsumerService {
@Reference(version = "1.0.0")
CityDubboService cityDubboS
public void printCity() {
String cityName="温岭";
City city = cityDubboService.findCityByName(cityName);
System.out.println(city.toString());
@Reference(version = &#.0”) 通过该注解,订阅该接口版本为 1.0.0 的 Dubbo 服务。
这里将 CityDubboConsumerService 注入 Spring 容器,是为了更方便的获取该 Bean,然后验证这个 Dubbo 调用是否成功。
c.ClientApplication.java 客户端启动类
@SpringBootApplication
public class ClientApplication {
public static void main(String[] args) {
// 程序启动入口
// 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
ConfigurableApplicationContext run = SpringApplication.run(ClientApplication.class, args);
CityDubboConsumerService cityService = run.getBean(CityDubboConsumerService.class);
cityService.printCity();
解释下这段逻辑,就是启动后从 Bean 容器中获取城市 Dubbo 服务消费者 Bean。然后调用该 Bean 方法去验证 Dubbo 调用是否成功。
还有涉及到服务的监控,治理。这本质上和 SpringBoot 无关,所以这边不做一一介绍。感谢阿里 teaey 提供的 starter-dubbo 项目。
欢迎扫一扫我的公众号关注 — 及时得到博客订阅哦!
— /JeffLi1993 —
原创文章,转载请注明: 转载自本文链接地址:
Think ,Write & Do
Latest posts by 泥瓦匠BYSocket ()
Related posts:
(2 votes, average: 4.50 out of 5)
Loading...PS:搭建框架过程在网上查询了比较多的资料,最后自己再综合得到,如有侵权,请联系删除!
&最近整合了springboot+mybatis+dubbo的架构,分享给大家!首先Demo目录架构如下:
首先项目外层定义版本等的pom文件如下:
&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.sb&/groupId&
&artifactId&springBootDemo1&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&packaging&pom&/packaging&
&name&springBootDemo1&/name&
&description&springBootDemo1&/description&
&properties&
&jdk.version&1.7&/jdk.version&
&maven-compiler-plugin.version&3.1&/maven-compiler-plugin.version&
&maven-resources-plugin.version&2.6&/maven-resources-plugin.version&
&org.mybatis.generator.version&1.3.2&/org.mybatis.generator.version&
&mybatis.version&3.1.1&/mybatis.version&
&mybatis-spring.version&1.2.0&/mybatis-spring.version&
&dubbo.version&2.4.9&/dubbo.version&
&zookeeper.version&3.4.5&/zookeeper.version&
&zkclient.version&0.1&/zkclient.version&
&com.alibaba.druid.version&0.2.6&/com.alibaba.druid.version&
&/properties&
&!-- springboot使用1.4.1.RELEASE版本 --&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-parent&/artifactId&
&version&1.4.1.RELEASE&/version&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&configuration&
&source&${jdk.version}&/source&
&target&${jdk.version}&/target&
&encoding&UTF-8&/encoding&
&/configuration&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-resources-plugin&/artifactId&
&configuration&
&encoding&UTF-8&/encoding&
&/configuration&
&/plugins&
&module&springboot-comm&/module&
&module&springboot-app&/module&
&module&springboot-web1&/module&
&/modules&
&/project&springboot-app下面的Application.java,主要用注解方式加载Bean,而且服务提供者的启动main方法也写在这下面,代码如下:
package com.springboot.
import javax.sql.DataS
import org.apache.ibatis.session.SqlSessionF
import org.apache.log4j.L
import org.mybatis.spring.SqlSessionFactoryB
import org.mybatis.spring.annotation.MapperS
import org.springframework.boot.SpringA
import org.springframework.boot.autoconfigure.EnableAutoC
import org.springframework.boot.autoconfigure.SpringBootA
import org.springframework.boot.context.properties.ConfigurationP
import org.springframework.context.annotation.B
import org.springframework.ponentS
import org.springframework.context.annotation.ImportR
import org.springframework.core.io.support.PathMatchingResourcePatternR
import org.springframework.jdbc.datasource.DataSourceTransactionM
import org.springframework.transaction.PlatformTransactionM
import com.alibaba.druid.pool.DruidDataS
@MapperScan(&com.springboot.mapper&)
@SpringBootApplication
@ImportResource(locations={&dubbo-provider.xml&})
public class Application {
&span style=&white-space:pre&& &/span&private static volatile boolean running =
private static Logger logger = Logger.getLogger(Application.class);
//DataSource配置
@ConfigurationProperties(prefix=&spring.datasource&)
public DataSource dataSource() {
return new com.alibaba.druid.pool.DruidDataSource();
//提供SqlSeesion
public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource());
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources(&classpath:/mybatis-mapping/*.xml&));
return sqlSessionFactoryBean.getObject();
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
* Main 方法启动项
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
System.out.println(&============= APP Start ON SpringBoot Success =============&);
synchronized (Application.class) {
while (running) {
Application.class.wait();
} catch (Throwable e) {
启动app层的main方法之后,会自动加载bean,&@ConfigurationProperties(prefix=&spring.datasource&)会自动去application.properties下面以spring.datasource开头的有关数据库连接的配置文件,application.properties如下:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
dubbo.registry.center=127.0.0.1:2181
dubbo.protocol.port=20885
通过注解@MapperScan(&com.springboot.mapper&)自动扫描mybatis的mapper文件,mapper代码如下:
package com.springboot.
import com.springboot.domain.U
public interface UserMapper {
int deleteByPrimaryKey(Integer id);
int insert(User record);
int insertSelective(User record);
User selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
UserMapper.xml,使用mybatis逆向工程生产的,没改动,代码如下:
&?xml version=&1.0& encoding=&UTF-8& ?&
&!DOCTYPE mapper PUBLIC &-//mybatis.org//DTD Mapper 3.0//EN& &http://mybatis.org/dtd/mybatis-3-mapper.dtd& &
&mapper namespace=&com.springboot.mapper.UserMapper& &
&resultMap id=&BaseResultMap& type=&com.springboot.domain.User& &
&id column=&id& property=&id& jdbcType=&INTEGER& /&
&result column=&name& property=&name& jdbcType=&VARCHAR& /&
&result column=&age& property=&age& jdbcType=&INTEGER& /&
&result column=&password& property=&password& jdbcType=&VARCHAR& /&
&/resultMap&
&sql id=&Base_Column_List& &
id, name, age, password
&select id=&selectByPrimaryKey& resultMap=&BaseResultMap& parameterType=&java.lang.Integer& &
&include refid=&Base_Column_List& /&
where id = #{id,jdbcType=INTEGER}
&delete id=&deleteByPrimaryKey& parameterType=&java.lang.Integer& &
delete from user
where id = #{id,jdbcType=INTEGER}
&insert id=&insert& parameterType=&com.springboot.domain.User& &
insert into user (id, name, age,
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER},
#{password,jdbcType=VARCHAR})
&insert id=&insertSelective& parameterType=&com.springboot.domain.User& &
insert into user
&trim prefix=&(& suffix=&)& suffixOverrides=&,& &
&if test=&id != null& &
&if test=&name != null& &
&if test=&age != null& &
&if test=&password != null& &
&trim prefix=&values (& suffix=&)& suffixOverrides=&,& &
&if test=&id != null& &
#{id,jdbcType=INTEGER},
&if test=&name != null& &
#{name,jdbcType=VARCHAR},
&if test=&age != null& &
#{age,jdbcType=INTEGER},
&if test=&password != null& &
#{password,jdbcType=VARCHAR},
&update id=&updateByPrimaryKeySelective& parameterType=&com.springboot.domain.User& &
update user
&if test=&name != null& &
name = #{name,jdbcType=VARCHAR},
&if test=&age != null& &
age = #{age,jdbcType=INTEGER},
&if test=&password != null& &
password = #{password,jdbcType=VARCHAR},
where id = #{id,jdbcType=INTEGER}
&update id=&updateByPrimaryKey& parameterType=&com.springboot.domain.User& &
update user
set name = #{name,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
password = #{password,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
springboot-comm:主要放实体、接口、也可以放一些公用的工具类,实体如下:
接口如下:
package com.springboot.
import com.springboot.domain.U
public interface UserService {
User getById(Integer id);
}接下来是接口的实现,放在app层,都比较简单,如下:package com.springboot.service.
import javax.annotation.R
import org.springframework.stereotype.S
import com.springboot.domain.U
import com.springboot.mapper.UserM
import com.springboot.service.UserS
@Service(&userService&)
public class userServiceImpl implements UserService {
private UserMapper userM
/* (non-Javadoc)
* @see com.spring.service.impl.user.userService#getById(java.lang.Integer)
public User getById(Integer id){
return userMapper.selectByPrimaryKey(id);
服务提供者的dubbo-provider.xml,代码如下:&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:context=&http://www.springframework.org/schema/context& xmlns:p=&http://www.springframework.org/schema/p&
xmlns:task=&http://www.springframework.org/schema/task& xmlns:util=&http://www.springframework.org/schema/util&
xmlns:dubbo=&/schema/dubbo&
xsi:schemaLocation=&http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
/schema/dubbo
/schema/dubbo/dubbo.xsd&&
&context:component-scan base-package=&com.springboot.service.*&&
&context:exclude-filter type=&annotation&
expression=&org.springframework.stereotype.Controller& /&
&/context:component-scan&
&dubbo:application name=&springBoot-service-provider-app& /&
&!-- Dubbo注册地址 --&
&dubbo:registry protocol=&zookeeper& address=&${dubbo.registry.center}& /&
&dubbo:protocol name=&dubbo& port=&${dubbo.protocol.port}& threadpool=&cached& threads=&1000& accepts=&2000& serialization=&java&/&
&dubbo:service interface=&com.springboot.service.UserService& ref=&userService& timeout=&3000& &&/dubbo:service&
自己本地可以下载一个单机版的zookeeper
app的pom文件如下:
&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.sb&/groupId&
&artifactId&springBootDemo1&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&artifactId&springboot-app&/artifactId&
&dependencies&
&dependency&
&groupId&com.sb&/groupId&
&artifactId&springboot-comm&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-jdbc&/artifactId&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis&/artifactId&
&version&${mybatis.version}&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis-spring&/artifactId&
&version&${mybatis-spring.version}&/version&
&/dependency&
&dependency&
&groupId&com.github.sgroschupf&/groupId&
&artifactId&zkclient&/artifactId&
&version&${zkclient.version}&/version&
&exclusions&
&exclusion&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
&dependency&
&groupId&mysql&/groupId&
&artifactId&mysql-connector-java&/artifactId&
&/dependency&
&dependency&
&groupId&org.apache.tomcat&/groupId&
&artifactId&tomcat-jdbc&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-jdbc&/artifactId&
&/dependency&
&dependency&
&groupId&org.mybatis.generator&/groupId&
&artifactId&mybatis-generator-core&/artifactId&
&version&${org.mybatis.generator.version}&/version&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&dubbo&/artifactId&
&version&${dubbo.version}&/version&
&exclusions&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
&dependency&
&groupId&org.apache.zookeeper&/groupId&
&artifactId&zookeeper&/artifactId&
&version&${zookeeper.version}&/version&
&exclusions&
&exclusion&
&artifactId&jmxtools&/artifactId&
&groupId&com.sun.jdmk&/groupId&
&/exclusion&
&exclusion&
&artifactId&jmxri&/artifactId&
&groupId&com.sun.jmx&/groupId&
&/exclusion&
&exclusion&
&artifactId&jms&/artifactId&
&groupId&javax.jms&/groupId&
&/exclusion&
&exclusion&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&/exclusion&
&exclusion&
&artifactId&slf4j-log4j12&/artifactId&
&groupId&org.slf4j&/groupId&
&/exclusion&
&/exclusions&
&/dependency&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&druid&/artifactId&
&version&${com.alibaba.druid.version}&/version&
&/dependency&
&/dependencies&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&configuration&
&source&${jdk.version}&/source&
&target&${jdk.version}&/target&
&encoding&UTF-8&/encoding&
&/configuration&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-resources-plugin&/artifactId&
&configuration&
&encoding&UTF-8&/encoding&
&/configuration&
&/plugins&
&/project&
到了这里,我们的服务已经可以完成了,运行application.java的main方法,我们可以看到控制台如下,就代表成功了!是不是比以前少了很多配置文件,2333!!
然后我们到web层,到web层就比较简单,pom文件如下:
&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.sb&/groupId&
&artifactId&springBootDemo1&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&artifactId&springboot-web1&/artifactId&
&packaging&war&/packaging&
&dependencies&
&dependency&
&groupId&com.sb&/groupId&
&artifactId&springboot-comm&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-web&/artifactId&
&/dependency&
&!-- add for dubbo start --&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&dubbo&/artifactId&
&version&${dubbo.version}&/version&
&exclusions&
&exclusion&
&groupId&org.springframework&/groupId&
&artifactId&spring&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
&dependency&
&groupId&org.apache.zookeeper&/groupId&
&artifactId&zookeeper&/artifactId&
&version&${zookeeper.version}&/version&
&exclusions&
&exclusion&
&artifactId&jmxtools&/artifactId&
&groupId&com.sun.jdmk&/groupId&
&/exclusion&
&exclusion&
&artifactId&jmxri&/artifactId&
&groupId&com.sun.jmx&/groupId&
&/exclusion&
&exclusion&
&artifactId&jms&/artifactId&
&groupId&javax.jms&/groupId&
&/exclusion&
&exclusion&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-log4j12&/artifactId&
&/exclusion&
&exclusion&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
&dependency&
&groupId&com.github.sgroschupf&/groupId&
&artifactId&zkclient&/artifactId&
&version&${zkclient.version}&/version&
&exclusions&
&exclusion&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
&/dependencies&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&configuration&
&source&${jdk.version}&/source&
&target&${jdk.version}&/target&
&encoding&UTF-8&/encoding&
&/configuration&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-resources-plugin&/artifactId&
&configuration&
&encoding&UTF-8&/encoding&
&/configuration&
&/plugins&
&/project&
application.properties如下:dubbo.registry.center=127.0.0.1:2181springboot会自动加载配置文件,你有什么自定义的属性也可以写在这里,${名称},配置文件就可以取到,非常方便
然后服务消费者代码如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:context=&http://www.springframework.org/schema/context& xmlns:p=&http://www.springframework.org/schema/p&
xmlns:dubbo=&/schema/dubbo&
xsi:schemaLocation=&http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
/schema/dubbo /schema/dubbo/dubbo.xsd&&
&context:annotation-config /&
&dubbo:application name=&springboot-service-consumer-app& /&
&dubbo:registry id=&springboot-reg& protocol=&zookeeper& address=&${dubbo.registry.center}& /&
&dubbo:annotation /&
&context:component-scan base-package=&com.springboot.*&&
&context:include-filter type=&annotation&
expression=&com.alibaba.dubbo.config.annotation.Reference& /&
&/context:component-scan&
&!-- &dubbo:reference
interface=&com.springboot.service.UserService& id=&userService&/& --&
demoController的代码如下:
package com.springboot.
import org.apache.log4j.L
import org.springframework.beans.factory.annotation.A
import org.springframework.boot.SpringA
import org.springframework.boot.autoconfigure.EnableAutoC
import org.springframework.boot.autoconfigure.SpringBootA
import org.springframework.stereotype.C
import org.springframework.ui.M
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
import org.springframework.web.bind.annotation.ResponseB
import org.springframework.web.bind.annotation.RestC
import com.alibaba.dubbo.config.annotation.R
import com.springboot.domain.U
import com.springboot.service.UserS
@RestController
@RequestMapping(&/user&)
public class demoController {
private static Logger logger = Logger.getLogger(demoController.class);
@Reference
private UserService userS
http://localhost:8080/user/getUserById?id=1
@RequestMapping(&/getUserById&)
public Object getUserById(@RequestParam(&id&)Integer id) {
User user = userService.getById(id);
if(user!=null){
System.out.println(&user.getName():&+user.getName());
(&user.getAge():&+user.getAge());
最后就是到web的启动项,你只需要运行这个main方法,项目就可以访问了,webStartApp.java代码如下:
package com.springboot.
import org.apache.log4j.L
import org.springframework.boot.SpringA
import org.springframework.boot.autoconfigure.EnableAutoC
import org.springframework.boot.autoconfigure.SpringBootA
import org.springframework.ponentS
import org.springframework.context.annotation.ImportR
import org.springframework.context.annotation.PropertyS
import org.springframework.context.annotation.PropertyS
@SpringBootApplication(scanBasePackages=&com.springboot.controller&)
@ImportResource(locations = {&dubbo-consumer.xml&})
public class webStartApp {
private static Logger logger = Logger.getLogger(webStartApp.class);
* Main Start
public static void main(String[] args) {
SpringApplication.run(webStartApp.class, args);
System.out.println(&============= SpringBoot web Start Success =============&);
@SpringBootApplication(scanBasePackages=&com.springboot.controller&) 括号里面的内容,如果Controller和启动main同一个包下面是不需要指向的,如果要放在不同包下面不加scanBasePackages=&com.springboot.controller&会报错!
然后我们现在启动webStartApp ,如果成功,我们会看到控制台如下:
我的数据库里面存了两条数据:
这时候我们就可以访问试一下,看到返还的如下JSON数据,就证明我们项目跑起来了:
控制台也会有对应的输出:
到这里,我们的整合已经完成了,希望对你有帮助!!
PS:第一次写博客,写得不好请多多包涵。
本文已收录于以下专栏:
相关文章推荐
spring以及dubbo配置
首先导入相关jar包,在web.xml中添加配置Spring监听
contextConfigLocation
1、ivan-api工程:
pom.xml文件配置如下,请根据自身工程情况修改:
[html] view
plain copy
 print?
服务消费者ivan-dubbo-web工程搭建,首先这是一个web工程,这里只存在Controller及前台view
1、在WEB_INF下新建文件夹views,并将自动生成...
接上三篇博文,继续。。。
1、ivan-dubbo-server增加spring-mybatis.xml配置文件(注意:在dubbo与mybatis全注解集成时,配置spring事务无法发布服务...
1.新建Maven Project
2新建Maven Module
——提供者和消费者都需要引用的共同代码块(如entity和service...
spring-boot-start-dubbo
spring-boot-start-dubbo,让你可以使用spring-boot的方式开发dubbo程序。使dubbo开发变得如此简单。
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 spring boot 前端框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信