SpringBoot+vue+实战项目--锋迷商城
1. 项目功能
用户管理:用户注册, 首页功能实现:三级分类 商品详情:商品详情查询与显示,商品评价,商品评价脱敏实现 购物车:添加购物车, 删除商品 收货地址:收获地址列表,新增收获地址,修改收获地址,删除收获地址 提交订单:订单支付,超时取消 用户中心:修改用户信息 订单管理:查询订单 评价管理:商品评价列表 中心首页数据显示:订单状态
2. 技术选型
项目架构:前后端分离 前端技术:vue(在jQuery上优化),数据渲染能力,没有通信能力。因此需要axios(只做通信),组合使用。layui、bootstrap。 后端技术:SpringBoot + MyBatis、RESTful、swagger 服务器搭建:Linux 、Nginx服务器
3. 项目架构的演进
单体架构:前后端部署在同一台服务器(Tomcat ) 前后端分离:概念及优点 集群与负载均衡: 分布式:基于redis实现分布锁、分布式数据库mycat
4. SpringBoot
4.1 概念:约定大于配置/习惯优于配置的理念快速搭建项目的开发环境。我们无需或者很少的相关spring配置就能快速的将项目运行起来。 4.2 优点:快速搭建项目、springboot内置了配置。
5. Usercontroller(实操注册用户)
超链接请求:响应同步请求 响应异步请求, 返回的是对象,需要加@ResponseBody,
转成json格式对象才能返回。
5.1 @ResponseBody:返回json格式的数据
public class UserControlller{
@Resource
private UserService userService;
@RequestMapping("/regist")
@ResponseBody
public User regist(User user){
return userService.userRegist(user);
}
}
6. Java配置方式
6.1 xml配置
对基础配置、引?的第三?依赖中的配置使?xml完成:例如数据源配置
6.2 注解配置
业务开发使?注解:例如controller、service (自定义类对象)
6.3 Java配置?式 (第三方类对象)
@Configuration
public class SpringConfig{
@Bean
public Date getDate(){
return new Date();
}
}
7. SpringBoot自动配置(底层源码)
@SpringBootApplication
8.全局配置?件
8.1 SpringBoot针对不同的开发场景提供默认的属性配置,如果默认的配置不能满?开发的需要,我们需要对属性配置进?修改. 8.2 SpringBoot应?提供了?个全局配置?件 application.properties ?于进??定义配置
8.3 全局配置?件?持2中语法配置:
①properties 键值对配置
# 配置数据源 (key必须按照SpringBoot的要求)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=admin123
# 配置映射?件路径及实体类的包名
mybatis.mapper-locations=classpath:mappers
②yaml 语法的配置(企业偏多)
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
driver-class-name: com.mysql.jdbc.Driver
username: root
password: admin123
mybatis:
mapper-locations: classpath:mappers
9. SpringBoot整合JSP
概念:SpringBoot应?默认?持的动态??技术是Thymeleaf,并不?持JSP;因此在SpringBoot应?想要使?JSP需要通过?动整合来实现
9.1 添加依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>9.0.45</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
9.2 创建JSP页面
1. 修改pom?件打包?式为war
2. 在mian中创建webapp目录
3. 在webapp创建.jsp页面
9.3 将JSP??放在WEB-INF中的访问
1 将JSP?件存放到WEB-INF?录
2 在application.yml?件配置SpringMVC视图解析?式:
spring:
mvc:
view:
prefix: /WEB-INF/
suffix: .jsp
3 创建PageController
@Controller
public class PageController {
@RequestMapping("/index.html")
public String index() {
return "index";
}
}
10. 基于SpringBoot的SSM整合
10.1 创建Springboot项?
1 创建项?时添加依赖
lombok
spring web
mysql driver
mybatis framework
2 修改mysql驱动的版本(可选)
<!--pom.xml-->
<properties>
<java.version>1.8</java.version>
<mysql.version>5.1.47</mysql.version>
</properties>
10.2 进行MyBatis所需的配置
1 将默认创建的application.properties后缀名修改为 yml (根据习惯可选)
2 完成MyBatis的?定义配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
username: root
password: admin123
mybatis:
type-aliases-package: com.qfedu.springboot.ssm.beans
mapper-locations: classpath:mappers
10.3 在启动类配置DAO扫描
@MapperScan---- 扫描dao接口(service接口没有对应的mapper)
@SpringBootApplication
@MapperScan("com.qfedu.springboot.ssm.dao")
public class SpringbootSsmApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootSsmApplication.class, args);
}
}
11. 整合Druid连接池
在SpringBoot中整合MyBatis的时候,默认集成了Hikari连接池,Hikari的效率?Druid要?,但是得益于Druid提供了?较便捷的监控系统在企业开发中druid使?还是最多的。
11.1 添加druid的starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
11.2 配置druid数据源
spring:
datasource:
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
username: root
password: admin123
initial-size: 1
min-idle: 1
max-active: 20
12. Thymeleaf
12.1 Thymeleaf简介
Thymeleaf是?种类似于JSP的动态??技术。
JSP 必须依赖Tomcat运?,不能直接运?在浏览器中。
HTML可以直接运?在浏览器中,但是不能接收控制器传递的数据。
Thymeleaf是?种既保留了HTML的后缀能够直接在浏览器运?的能?、
?实现了JSP显示动态数据的功能——静能查看??效果、动则可以显示数据。
12.2 Thymeleaf的使用
SpringBoot应?对Thymeleaf提供了良好的?持
1 添加thymeleaf的starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2 创建Thymeleaf模板
Thymeleaf模板就是HTML?件.
SpringBoot应?中 resources\templates ?录就是?来存放??模板的.
重点说明:
1. static ?录下的资源被定义静态资源,SpringBoot应?默认放?;
如果将HTML??创建static?录是可以直接访问
2. templates ?录下的?件会被定义为动态??模板,SpringBoot应?会拦截
templates中定义的资源;如果将HTML?件定义在templates?录,
则必须通过控制器跳转访问。
补充:在templates创建HTML??模板
创建PageController,?于转发允许"直接访问"的??请求
@Controller
@RequestMapping("/page")
public class PageController {
@RequestMapping("/test.html")
public String test(){
return "test";
}
}
|