Spring Cloud系列专题springboot

Spring Cloud --- (一) 项目搭建

2018-12-31  本文已影响2人  July_whj

1、建立父工程

​ 首先创建一个父工程,名字为spring cloud打开IDEA(以下编码过程编码工具采用IDEA)。

创建新工程为Spring Cloud。

QQ20181114-231422.png

​ 选择下一步


QQ20181114-231655.png QQ20181114-231747.png QQ20181114-231821.png

引入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>cn.org.july.springcloud</groupId>
 <artifactId>springcloud</artifactId>
 <version>1.0-SNAPSHOT</version>
 <packaging>pom</packaging>


 <properties>
     <project.version>1.0-SNAPSHOT</project.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <java.version>1.8</java.version>
     <lombok.version>1.16.18</lombok.version>
     <log4j.version>1.2.17</log4j.version>
     <junit.version>4.12</junit.version>
     <mysql.version>6.0.6</mysql.version>
     <druid.version>1.1.10</druid.version>
 </properties>

 <dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-dependencies</artifactId>
             <version>Finchley.SR2</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>

         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-dependencies</artifactId>
             <version>2.0.6.RELEASE</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>

         <!-- mysql jdbc 驱动 -->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>${mysql.version}</version>
         </dependency>
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid</artifactId>
             <version>${druid.version}</version>
         </dependency>
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
             <version>1.3.2</version>
         </dependency>
         <dependency>
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-core</artifactId>
             <version>1.2.3</version>
         </dependency>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>${junit.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
             <version>${log4j.version}</version>
         </dependency>
     </dependencies>
 </dependencyManagement>

 <build>
     <plugins>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-jar-plugin</artifactId>
         </plugin>
         <plugin>
             <artifactId>maven-site-plugin</artifactId>
             <version>2.3</version>
             <executions>
                 <execution>
                     <id>default-site</id>
                     <phase>site</phase>
                     <goals>
                         <goal>site</goal>
                     </goals>
                 </execution>
             </executions>
         </plugin>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-deploy-plugin</artifactId>
             <version>2.8.2</version>
             <configuration>
                 <skip>true</skip>
             </configuration>
         </plugin>
     </plugins>
 </build>
</project>

​ 该工程为父工程,打包方式为pom.<packaging>pom</packaging>

2、建立服务API模块

​ 在父工程中,新建Module,module名称为springcloud-api

111801.png

111802.png

​ 创建完成后项目结构如下:

111803.png

​ 新建包cn.org.july.springcloud.api.entities

​ 新建类User内容如下:

@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain = true)
public class User implements Serializable {
    /**
     * 主键
     */
    private Integer id;
    /**
     * 部门名称
     */
    private String userName;
    /**
     * 存储数据库位置(分布式部署可能存在多个数据库)
     */
    private String dbSource;
    /**
     * 电话号
     */
    private Spring phone;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 密码
     */
    private String pwd;

}

说明:此次使用lombok插件;官网 https://www.projectlombok.org/

注解 说明
@Data 在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;
@getter 在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;
@setter 在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;
@NoArgsConstructor 在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;
@AllArgsConstructor 在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;
@ToString 在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;
@EqualsAndHashCode 在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;
@Slf4j 在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
@Log4j 在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
@Accessors(prefix = {"first"}, fluent = true, chain = false) 与生存的get和set方法有关,prefix与定义属性前缀相同时且接下来的字符大写才生效,可以看源码注释或自行尝试;
fluent是决定生成的get/set方法要不要set/get前缀,chain决定set方法是void类型还是返回this

项目POM文件内容如下:

<?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>

    <parent>
        <groupId>cn.org.july.springcloud</groupId>
        <artifactId>springcloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>springcloud-api</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.18</version>
        </dependency>
    </dependencies>
</project>

@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain = true)
public class User implements Serializable {
    /**
     * 主键
     */
    private Integer id;
    /**
     * 部门名称
     */
    private String userName;
    /**
     * 存储数据库位置(分布式部署可能存在多个数据库)
     */
    private String dbSource;
    /**
     * 电话号
     */
    private Spring phone;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 密码
     */
    private String pwd;

}

3、建立服务提供者

​ 在父工程中,新建Module,module名称为springcloud-provider-user-8001

​ 创建过程如上,不再截图。

修改该Module 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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>cn.org.july.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-provider-user-8001</artifactId>
    <dependencies>
        <!-- 引入API -->
        <dependency>
            <groupId>cn.org.july.springcloud</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!-- 单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <!-- 数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <!-- 数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- 日志 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
        <!-- springBoot 集成 mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <!-- web模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 单元测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

</project>

我们这里主要是讲整体架构搭建,我们不具体实现复杂的业务逻辑。以下只实现查询接口

在新建的Module中建立如下项目结构:

111804.png 111601.png

4、创建服务消费者

​ 新建Module,名称为springcloud-consumer-user-8000

创建过来不在详细讲述;创建完成后,项目结构目录如下:

[图片上传失败...(image-f5e239-1546251342956)]

111806.png 111807.png

出现以上结果,服务消费者配置成功。该程序只做简单实例。

上一篇下一篇

猜你喜欢

热点阅读