个人名片:
本项目基于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.yml和pom.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\ (图片在电脑的地址,这里是本人的位置。建议放个简单的的位置)
八、资源映射
-
做完以上工作后启动项目,发现无法访问网页。出现下面这种情况
页面显示
开发者工具中显示
-
代表未完成资源映射,服务器不知道浏览器的请求该访问哪里。 注意需要在启动类中配置@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/");
}
}