**项目的初步搭建**
项目的技术选型:
SpringBoot集成Dubbo框架zookeeper做为注册中心,数据库采取Mysql数据关系型数据库,Redis,MoongoDB,Elasticsearch做为非关系型数据库
##项目机构的搭建
##一、项目的架构设计:
1、有项目版本管理和公共配置
2、项目公共用到的依赖配置,公共的类,公共的工具
3、api模块(domain,config,mapper,service接口,application-jdbc。properties,generatorConfig.xml)
4、server模块(service实现类、SpringBoot服务器启动器,dubbo的applocation.properties的配置文件)
二、实现的方法步骤
1、项目的版本统一控制,(parent)模块的设计
统一的配置文件进行管理配置,处于父级项目。父级项目只统一的管理依赖文件,不写业务逻辑代码。
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/>
</parent>
<!--依赖版本管理-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--子项目版本控制-->
<dependency>
<groupId>com.javah5.luowowo.parent</groupId>
<artifactId>trip-common</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.javah5.luowowo.parent</groupId>
<artifactId>trip-member-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--公共依赖-->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!--代码生成器依赖-->
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>false</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
</dependencies>
</plugin>
</plugins>
<!--告诉idea去src/main/java加载一些配置文件, 这里仅仅用于将mybatisxml文件方指定mapper接口包中, idea也可以加载-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
二、进行公共模块(trip-common)的设计
直接生成common的model;
此模块用做存放公共的类和工具;
三、微服务的搭建
分为两个模块:一个是api模块,一个为service模块
1、trip-member-api的设计
结构设计
config的设计
MemberConfig
@Configuration
@MapperScan(basePackages = "com.javah5.luowowo.member.mapper")
@PropertySource("classpath:application-jdbc.properties")
public class MemberConfig {
}
aplication-jdbc.properties的设计
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///luowowoqj?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
pom.xml配置文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!--依赖公共模块的api-->
<dependency>
<groupId>com.javah5.luowowo.parent</groupId>
<artifactId>trip-common</artifactId>
</dependency>
</dependencies>
2、trip-service的设计
结构
applocation.properties的配置设计
#服务名
spring.application.name=member-server-provide
dubbo.application.name=member-server-provide
#注册中心
dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo的RPC协议
dubbo.server=true
dubbo.protocol.name=dubbo
#dubbo的RPC端口
dubbo.protocol.port=20880
#是否启动检查
dubbo.consumer.check=false
logging.level.com.javah5.luowowo=debug
#dubbo超时时间
dubbo.consumer.timeout=20000
trip-member-server的pom.xml的设计
<dependencies>
<!--dubbo的依赖-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<!--依赖同一个服务的api-->
<dependency>
<groupId>com.javah5.luowowo.parent</groupId>
<artifactId>trip-member-api</artifactId>
</dependency>
</dependencies>
MemberServce启动类的设计
@SpringBootApplication
@Import(MemberConfig.class)//
@EnableDubbo
public class MemberService {
public static void main(String[] args) {
SpringApplication.run(MemberService.class, args);
}
}
结语:这是第一步的项目结构设计和搭建member的服务,测试启动,证明服务搭建成功。
谢谢 第一次尝试写一下项目的教程,还请多多包涵和指正。存在很多的不足和内容的不完善。我会加油进步和改正的。