谷粒学院项目笔记第一部分

1.环境搭建,准备工作

(1)创建数据库

(2)创建项目完整结构

谷粒学院项目笔记第一部分_第1张图片

(3)父工程springboot,子工程maven

(4)父工程pom设置版本,添加pom

谷粒学院项目笔记第一部分_第2张图片

#版本
2.2.1.RELEASE
#包
pom

(4)删除父工程dependencies依赖,只放管理依赖的版本

谷粒学院项目笔记第一部分_第3张图片 添加版本依赖

#添加 确定依赖的版本

    1.8
    0.0.1-SNAPSHOT
    3.0.5
2.0
2.7.0
2.8.3
2.10.1
3.17
1.3.1
2.6
4.5.1
0.7.0
4.3.3
3.1.0
2.15.2
1.4.11
1.4.11
1.2.28
2.8.2
20170516
1.7
1.1.0
zx
0.2.2.RELEASE

配置依赖管理

#dependencyManagement依赖管理




org.springframework.cloud
spring-cloud-dependencies
Hoxton.RELEASE
pom
import


org.springframework.cloud
spring-cloud-alibaba-dependencies
${cloud-alibaba.version}
pom
import



com.baomidou
mybatis-plus-boot-starter
${mybatis-plus.version}



org.apache.velocity
velocity-engine-core
${velocity.version}



io.springfox
springfox-swagger2
${swagger.version}



io.springfox
springfox-swagger-ui
${swagger.version}



com.aliyun.oss
aliyun-sdk-oss
${aliyun.oss.version}



joda-time
joda-time
${jodatime.version}



org.apache.poi
poi
${poi.version}



org.apache.poi
poi-ooxml
${poi.version}



commons-fileupload
commons-fileupload
${commons-fileupload.version}



commons-io
commons-io
${commons-io.version}



org.apache.httpcomponents
httpclient
${httpclient.version}


com.google.code.gson
gson
${gson.version}



io.jsonwebtoken
jjwt
${jwt.version}



com.aliyun
aliyun-java-sdk-core
${aliyun-java-sdk-core.version}


com.aliyun.oss
aliyun-sdk-oss
${aliyun-sdk-oss.version}


com.aliyun
aliyun-java-sdk-vod
${aliyun-java-sdk-vod.version}


com.aliyun
aliyun-java-vod-upload
${aliyun-java-vod-upload.version}


com.aliyun
aliyun-sdk-vod-upload
${aliyun-sdk-vod-upload.version}


com.alibaba
fastjson
${fastjson.version}


org.json
json
${json.version}


commons-dbutils
commons-dbutils
${commons-dbutils.version}


com.alibaba.otter
canal.client
${canal.client.version}


在父工程下创建service,创建后添加

pom

将相关依赖引入

 
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
            com.atguigu
            service_base
            0.0.1-SNAPSHOT
        




















        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
        
        
        
            mysql
            mysql-connector-java
        
        
        
            org.apache.velocity
            velocity-engine-core
        
        
        
            io.springfox
            springfox-swagger2
        
        
            io.springfox
            springfox-swagger-ui
        
        
        
            org.projectlombok
            lombok
        
        
        
            org.apache.poi
            poi
        
        
            org.apache.poi
            poi-ooxml
        
        
            commons-fileupload
            commons-fileupload
        
        
        
            org.apache.httpcomponents
            httpclient
        
        
        
            commons-io
            commons-io
        
        
        
            com.google.code.gson
            gson
        
        
            junit
            junit
            4.12
        
    

 在service2下创建service-edu2

创建application.properties配置文件

# 服务器端口号
service.port=8001
# 服务名
spring.application.name=service-edu
# 环境设置dev,test,prod
spring.profiles.active=dev
# 数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

# mybaties日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

代码生成器,生成相关的层级结构

代码生成器的依赖


        
            org.apache.velocity
            velocity-engine-core
        

test里面使用代码生成器,构建数据库对应表的层级结构

package com.atguigu.test;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;

/**
 * @author
 * @since 2018/12/13
 */
public class CodeGenerator2 {

    @Test
    public void run() {

        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        //得到当前项目文件夹的路径
        String projectPath = System.getProperty("user.dir");
        //这里的 projectPath 路径最好改为绝对路径
        gc.setOutputDir("D:\\Codeware\\ideaCode\\guli\\guli_parent\\service\\service_edu" + "/src/main/java");
        gc.setAuthor("testjava");
        //生成后是否打开代码的文件夹
        gc.setOpen(false);
        //重新生成时文件是否覆盖,比如写了代码后,再次生成
        gc.setFileOverride(false);
        //去掉Service接口的首字母I,命名规则
        gc.setServiceName("%sService");
        //主键策略,对应实体类中设置的类型,long-ID_WORKER,字符串-ID_WORKER_STR
        gc.setIdType(IdType.ID_WORKER_STR);
        //定义生成的实体类中日期类型,datetime-date
        gc.setDateType(DateType.ONLY_DATE);
        gc.setSwagger2(true);//开启Swagger2模式

        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8&characterEncoding=utf-8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.atguigu");//生成的包名
        pc.setModuleName("eduservice"); //包名.模块名.
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 5、策略配置,根据表生成出代码
        StrategyConfig strategy = new StrategyConfig();
        // 多张表,""
        strategy.setInclude("edu_course","edu_course_description","edu_chapter","edu_video");
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉_

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

        mpg.setStrategy(strategy);


        // 6、执行
        mpg.execute();
    }
}

整合swagger

1.创建一个公共的类common来管理,引入依赖

pom

    
        
            org.springframework.boot
            spring-boot-starter-web
            provided 
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            provided 
        
        
        
            org.projectlombok
            lombok
            provided 
        
        
        
            io.springfox
            springfox-swagger2
            provided 
        
        
            io.springfox
            springfox-swagger-ui
            provided 
        
        
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
    

然后在common下,创建service_base,创建swagger的配置类,进行bean配置

@Configuration
@EnableSwagger2
public class SwaggerConfig2 {
    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }
    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("网站-课程中心API文档")
                .description("本文档描述了课程中心微服务接口定义")
                .version("1.0")
                .contact(new Contact("Helen", "http://atguigu.com",
                        "[email protected]"))
                .build();
    }
}

在要使用该功能的模块下引入

 
        
            com.atguigu
            service_base2
            0.0.1-SNAPSHOT
        

在service_edu的启动类上加

@ComponentScan(basePackages = {"com.atguigu"})

三个注意:swagger配置类,mapper扫描,@ComponentScan(basePackages = {"cn.lf"})扫描

配置config类扫描mapper

并将其注册为 MyBatis 的 Mapper。这样,在使用 Mapper 接口时,就不需要手动编写对应的实现类了。

你可能感兴趣的:(java,spring,boot,spring)