IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot+vue+实战项目之第1集 -> 正文阅读

[Java知识库]SpringBoot+vue+实战项目之第1集

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/*Mapper.xml
mybatis.type-aliases-package=com.qfedu.springboot.demo.entity

②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/*Mapper.xml
   type-aliases-package: com.qfedu.springboot.demo.entity

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中的访问

1JSP?件存放到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/*Mapper.xml

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";
                 }
            }
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 11:52:17  更:2021-08-30 11:53:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:59:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码