Bootstrap

猿创征文|瑞吉外卖——配置开发环境

个人名片:

博主酒徒ᝰ.
专栏瑞吉外卖
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。

本项目基于B站黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目。

视频链接【黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis
plus开发核心技术的真java实战项目】 https://www.bilibili.com/video/BV13a411q753?
点击观看

一、个人介绍

这是本人第二次写瑞吉外卖,第一次是跟着视频一步一步学习完成的。
本次是独立完成,不参考视频与之前完成的成品。
因此完成步骤与方法与视频中存在差异,仅供参考。 在完成的同时以笔记形式记录步骤与知识点。知识点比较短小精悍,是个人理解。如有问题请指点。
这些配置是已经提供好的(自动生成代码,启动类,Email_Util.java除外),直接复制来使用就可。
类似于这些Email_Util.java是从语雀的直接导入,不知道是否能查询,即使不能查阅,在老师的资料中也有,这个邮箱发送除外,不过需要使用的也本人也写了出来。

二、IDEA初始配置

1.maven项目搭建
在这里插入图片描述

2.导入配置文件application.ymlpom.xml
3.导入前端文件。
在这里插入图片描述

三、数据库配置

1.sql文件:db_reggie.sql

四、自动生成代码

1.xml文件

<!--代码生成器-->
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-generator</artifactId>
  <version>3.4.1</version>
</dependency>
<!--velocity模板引擎-->
<dependency>
  <groupId>org.apache.velocity</groupId>
  <artifactId>velocity-engine-core</artifactId>
  <version>2.3</version>
</dependency>

2.java代码

package com.itheima;

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.NamingStrategy;

public class CodeGenertor {
    public static void main(String[] args) {
        //1.获取代码生成器对象
        AutoGenerator autoGenerator = new AutoGenerator();

        //数据库连接
        DataSourceConfig dataSource = new DataSourceConfig();
        dataSource.setDriverName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/reggie");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        autoGenerator.setDataSource(dataSource);

        //设置全局配置
        GlobalConfig globalConfig = new GlobalConfig();
//        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");//设置成代码所在的目录
        //System.getProperty("user.dir")生成的目录是工作目录,可在有上方Edit Configurations中的Working directory配置
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");//设置成代码所在的目录
        globalConfig.setOpen(false);//设置生成完毕后是否打开生成代码所在的目录
        globalConfig.setAuthor("小鸭子");//设置作者
        globalConfig.setFileOverride(true);//设置是否覆盖原始生成文件
        globalConfig.setIdType(IdType.ASSIGN_ID);//设置id生成策略
        autoGenerator.setGlobalConfig(globalConfig);

        //设置包名相关配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.itheima");//设置生成的包名,与代码所在位置不冲突,二者叠加组成完整路径
        autoGenerator.setPackageInfo(packageConfig);

        //策略设置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);//表名生成策略,下划线连转驼峰
        strategyConfig.setRestControllerStyle(true);//设置是否使用Rest风格
        strategyConfig.setVersionFieldName("version");//设置是否使用乐观锁
        strategyConfig.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名
        strategyConfig.setEntityLombokModel(true);//设置是否启用Lambda
        autoGenerator.setStrategy(strategyConfig);

        //2.执行生产操作
        autoGenerator.execute();
    }


}

五、启动类

使用的是自动装配代码,其中mapper中使用的是xml,所以启动类中需要加入@MapperScan(“com.itheima.reggie.mapper”)

package com.itheima.reggie;

import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Slf4j
@SpringBootApplication
@EnableTransactionManagement
@ServletComponentScan //扫描@WebServlet,@WebFilter,@WebListener注解标记的Servlet(程序),Filter(过滤器),Listener(监听器)。扫描(config)资源映射类
@MapperScan("com.itheima.reggie.mapper")
public class ReggerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ReggerApplication.class, args);
        log.info("项目启动成功");
    }
}

六、导入其他配置

1.dto模块

DishDto.java
OrdersDto.java
SetmealDto.java

2.common模块

1.对象映射器
JacksonObjectMapper.java
2.服务端返回结果类
R.java

3.工具类

SMSUtils.javaValidateCodeUtils.javaEmail_Util.java

七、图片资源

在yml(项目配置文件中的application.yml)中输入图片的位置
reggie:
path: D:\abc\picture\ (图片在电脑的地址,这里是本人的位置。建议放个简单的的位置)

八、资源映射

  1. 做完以上工作后启动项目,发现无法访问网页。出现下面这种情况
    页面显示
    在这里插入图片描述
    开发者工具中显示
    在这里插入图片描述

  2. 代表未完成资源映射,服务器不知道浏览器的请求该访问哪里。 注意需要在启动类中配置@ServletComponentScan注解才会生效。

package com.itheima.reggie.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 设置资源映射
     * @param registry
     * 将浏览器访问的地址(请求)对应到相应的地址
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
    }
}

;