初始化环境:
前端搭建环境:
下载前端源码:
打开vscode 打开终端 npm install 依赖更新下载
然后运行: npm run serve
成功自动跳转首页
后端创建项目:
结构简单:
创建父工程:sky-take-out
三个子工程: sky-common、sky-pojo、sky-server
具体作用显而易见:
common: 放普遍的工具类、配置类以及常量类等
pojo: 放dto、entity、vo等实体类
server: api的创建实现、服务开启等
navicat连接数据库,运行sql文件,创建sky_take_out的数据库
初始化后端项目:
sky-common:
导入相关的依赖以及copy所有类;
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<!--支持配置属性类,yml文件中可以提示配置项-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<!--微信支付-->
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-apache-httpclient</artifactId>
</dependency>
<!-- 腾讯云COS存储-->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>5.6.155</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
</dependencies>
sky-pojo:
导入pom依赖:
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> </dependency> </dependencies>
创建对应的entity、dto、vo
前后端开始联调:
后端创建controller接受前端传入的数据:
封装DTO对象接受数据:
联调成功后开始完善登录功能:
将明文密码用md5加密保存在数据库:
password = DigestUtils.md5DigestAsHex(password.getBytes());
业务开发开始前,使用Swagger
导入依赖:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> </dependency>
配置接口文档配置
/** * 通过knife4j生成接口文档 * @return Docket */ @Bean public Docket docket2() { log.info("准备生成接口文档..."); ApiInfo apiInfo = new ApiInfoBuilder() .title("苍穹外卖项目接口文档") .version("2.0") .description("苍穹外卖项目接口文档") .build(); Docket docket; docket = new Docket(DocumentationType.SWAGGER_2) .groupName("用户端接口") .apiInfo(apiInfo) .select() .apis(RequestHandlerSelectors.basePackage("com.sky.controller ")) .paths(PathSelectors.any()) .build(); return docket; } /** * 设置静态资源映射 * @param registry registry */ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("开始设置静态资源映射..."); registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); }
成功后访问 ip地址:端口号/doc.html