平时做个小项目 想用SpringBoot做 想通过自己手动转换成SpringBoot 分布式项目 中途也放弃过 最近要找工作所以重新搞了一下 随便写下。。
https://spring.io/projects/spring-boot/
http://dubbo.apache.org/en-us/
spring boot 和 dubbo 的官网。。
定义就不做多介绍了 直接来干货
其实挺简单的
第一次写这些。。 如果有不懂的可以加我qq:1010345457 讨论。。。 虽然我也不太会 互相交流当扩大知识面了。。
首先是项目结构(SSM)
父工程
common
POJO 依赖common
interface 依赖POJO
Dao 依赖 POJO
四个Service 依赖 interface Dao
三个Controller 依赖interface
因为做过一次了 转spring boot 我只做了 后台模块 也就是 controllerback
转换Spring Boot后结构
不要在意名字。。。
整合之后主要就是dubbo 的变化
我用的是2.7.0 的版本
https://github.com/apache/incubator-dubbo
参照了github 上的教程
这个是spring boot 整合dubbo 的 pom 文件 spring boot 版本也是教程推荐的 2.1.1.RELEASE
org.apache.dubbo
dubbo-dependencies-bom
2.7.0
pom
import
org.apache.dubbo
dubbo
2.7.0
org.springframework
spring
javax.servlet
servlet-api
log4j
log4j
org.apache.dubbo
dubbo-spring-boot-starter
2.7.0
org.apache.dubbo
dubbo
转换之后 主要是文件配置变得很简单 更改了几个注释 就完事了
只更改了 service 和 controller
首先是service 层
配置文件
server.port=8080
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/1216?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
mybatis.mapper-locations=classpath:/mapper/**.xml
mybatis.type-aliases-package=com.zz.pojo.*
spring.application.name=sbShop_serviceconsole
dubbo.scan.base-packages=com.zz.serviceimpl
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.address=N/A
由于。。电脑渣 所以我采用了直连。。。
@Service 导入的包更改了 变成import org.apache.dubbo.config.annotation.Service;
从spring 管理 变成了dubbo管理
启动器代码
@SpringBootApplication
@MapperScan("com.zz.*")
@EnableCaching
@EnableAutoConfiguration
public class MyShopZzz1Application {
public static void main(String[] args) {
SpringApplication.run(MyShopZzz1Application.class, args);
}
}
然后就是controller 了
配置文件
server.port=8081
spring.mvc.view.prefix=/WEB-INF/console/
spring.mvc.view.suffix=.jsp
server.servlet.context-path=/
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/1216?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.application.name=sbShop_controllerback
dubbo.registry.address=N/A
dubbo.scan.base-packages=com.zz.serviceimpl
Service 的注入 从 @Autowired 依赖注入 变成了 @Reference 交给dubbo 调用远程服务对象
启动器
@SpringBootApplication
@EnableAutoConfiguration
public class A {
public static void main(String[] args) {
SpringApplication.run(A.class, args);
}
}
大概就是这些 有些需要注意的地方 比如 配置文件中的这个dubbo.scan.base-packages=com.zz.serviceimpl
他要的是实现类的包 并不是 接口 之前就是写错了。。。 一直不好使
大概就是这些 希望对你有帮助。。。