简单的SSM+Dubbo做微服务,也出现了很多的问题,毕竟第一次嘛,哈哈,别想多了,熟能生巧。
完整的SpringBoot集成Dubbo
具体是Servic的实现类和Controller层怎么使用看本章节最后面 有具体的代码演示。
具体是Servic的实现类和Controller层怎么使用看本章节最后面 有具体的代码演示。
具体是Servic的实现类和Controller层怎么使用看本章节最后面 有具体的代码演示。
不多说了;直接上代码和截图。
|----parent模块
|-----conten聚合工程模块
| |------pojo类
| |------dao层
| |------service接口层
|------impl (service实现层)
|-----common公共组件
|-----web表现层
Parent父类模块:集中管理项目中所有需要jar包的版本,打包方式为pom;
Conten聚合工程模块:继承parent模块,集中管理pojo、dao、serivice各层组件,conten模块打包方式为pom包;
pojo继承Conten模块,存放实体类,打包为jar;
dao继承Conten模块,负责与数据库交互,打包为jar;
service接口继承Conten模块,提供服务模块的抽象接口,为暴露对外访问接口,打包为war;
common公共组件模块:继承parent模块,管理公共组件,如log4j等,打包为jar;
------------------ ↑ 上面是参考别人的 其实有很多种方式 下面是我自己搭建的。
我个人觉得没有必要做聚合工程 总之你知道哪个服务做啥的就行 其实都是一个服务提供者 (Provider) 和一个是服务消费者 (Consumer) 。当然Dubbo不止这两个组件。
接下来看我们的服务消费者
做什么事都要有先后顺序。房子还需要设计师把房子设计好,房子的构造图画出来。
不了解Dubbo的可以先去看下Dubbo可以做那些事情。
http://dubbo.apache.org/en-us/
operation-parent 的pom.xml
4.0.0
com.*.parent
operation-parent
pom
1.0-SNAPSHOT
operation-service
4.12
4.2.4.RELEASE
1.3.2
1.2.15
5.1.32
1.6.4
2.4.2
1.0.9
4.3.5
1.2
2.5
3.3.2
1.3.2
3.3
3.4.2-fix
0.9.1
1.3.1
2.7.2
2.5.3
3.4.7
0.1
4.5.10
joda-time
joda-time
${joda-time.version}
org.apache.commons
commons-lang3
${commons-lang3.version}
org.apache.commons
commons-io
${commons-io.version}
commons-net
commons-net
${commons-net.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
org.apache.httpcomponents
httpclient
${httpclient.version}
junit
junit
${junit.version}
test
org.slf4j
slf4j-log4j12
${slf4j.version}
org.mybatis
mybatis-spring
${mybatis.spring.version}
com.github.miemiedev
mybatis-paginator
${mybatis.paginator.version}
com.github.pagehelper
pagehelper
${pagehelper.version}
mysql
mysql-connector-java
5.1.21
com.alibaba
druid
${druid.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-jms
${spring.version}
org.springframework
spring-context-support
${spring.version}
commons-fileupload
commons-fileupload
${commons-fileupload.version}
redis.clients
jedis
${jedis.version}
cn.hutool
hutool-all
${hutool.version}
com.alibaba
dubbo
${dubbo.version}
org.apache.zookeeper
zookeeper
${zookeeper.version}
com.github.sgroschupf
zkclient
${zkclient.version}
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
true
true
org.apache.maven.plugins
maven-compiler-plugin
3.7.0
1.8
operation-service的pom.xml 这是我自己的搭建的 我觉得聚合工程比较麻烦,就没有区分什么Api,pojo,service。如果是要搭建聚合的直接在 operation-service 下面建四个模块Api和pojo为jar 而service为War包 ,operation-service就是pom,
|----parent模块
|-----conten聚合工程模块
| |------pojo类
| |------dao层
| |------service接口层
|------impl (service实现层)
|-----common公共组件
|-----web表现层
operation-parent
com.*.parent
1.0-SNAPSHOT
4.0.0
operation-service
war
org.springframework
spring-context
junit
junit
${junit.version}
test
org.springframework
spring-beans
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aspects
com.alibaba
druid
${druid.version}
org.mybatis
mybatis
3.4.5
mysql
mysql-connector-java
5.1.38
org.mybatis
mybatis-spring
${mybatis.spring.version}
com.github.miemiedev
mybatis-paginator
${mybatis.paginator.version}
com.github.pagehelper
pagehelper
${pagehelper.version}
redis.clients
jedis
${jedis.version}
org.springframework
spring-context-support
cn.hutool
hutool-all
com.alibaba
dubbo
org.springframework
spring
org.jboss.netty
netty
org.apache.zookeeper
zookeeper
com.github.sgroschupf
zkclient
com.fasterxml.jackson.core
jackson-databind
2.9.8
org.projectlombok
lombok
1.16.18
provided
src/main/java
**/*.xml
true
接下来我们看Service的配置文件;
先看图
resources 下面分三层 conf、mybatis、spring
conf和mybatis应该不用说吧,SSM不懂的先去看SSM吧;我还是把代码贴出来吧
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.*.*:3306/aa?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=root
mybatis.xml
spring下面的【配置文件分的很清楚】
applicationContext-dao.xml 数据层
applicationContext-service.xml 服务层
zookeeper不会配置的请看这里
https://baijiahao.baidu.com/s?id=1623612116325629735&wfr=spider&for=pc
applicationContext-trans.xml 事物
operation-service web.xml
operation
contextConfigLocation
classpath:spring/applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
服务调用者(Consumer)
web.xml
operation-web
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
CharacterEncodingFilter
/*
operation
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/*.xml
1
operation
/
接下来看我们怎么使用 (Provider)
Pojo 类 记得实现序列化)
public class SysDevice implements Serializable {
}
ServiceImpl类-注解
@Service Spring的
@Service
@Component
public class DeviceServiceImpl implements DeviceService {
@Autowired
private SysDeviceMapper deviceMapper;
@Override
public String getDeviceByName(String name) {
return "hi:"+name;
}
服务的消费者 (Consumer)
Cotroller
@Controller
@RequestMapping(value = "/v1/operation")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value="/name", method=RequestMethod.GET)
public String getDeiceByName(@RequestParam String name) {
return deviceService.getDeviceByName(name);
}
}
请看下一篇SpringBoot+Dubbo;
https://blog.csdn.net/hehaimingg/article/details/92789089
SSM+Dubbo大概是这样 如有不懂的请加