springboot3+vue项目实践-黑马

embedded/2025/1/6 10:22:25/

springboot3+vue3项目实践-黑马

编辑时间:2024/12/30
来源:b站黑马

基础篇

导学课程

前置条件:
后端javaSE JAVAWeb、SSM框架
前端:html、css、JavaScript
工具:JDK17+、IDEA2021+ 、maven3.5+、vscode

springboot概述

概述
springboot是spring提供的一个子项目,用于快速构建spring应用程序。

spring Framework核心功能:
spring Data 数据获取
spring AMQP 消息传递
spring security 认证连接
spring Cloud 服务治理
spring特性
起步依赖:本质就是一个Maven坐标、整合了完成一个功能需要的所有坐标
自动配置:遵循约定大约配置的原则,在boot程序启动后,一些bean对象会自动注入到ioc容器,不需要手动声明,简化开发
其他特性:内部的tomcat、Jetty(无需部署WAR文件)、外部化配置、不需要XML配置(properties/yml)

springboot入门

创建maven工程
导入spring-boot-stater-web起步依赖编写controller

java">@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){System.out.println("Hello World~");return "Hello world~";}
}

提供启动类

java">//启动类
@SpringBootApplication
扫描itheima下的包(扫描的范围)
//@ComponentScan(basePackages = "com.itheima")
public class SpringbootQuickstartApplication {public static void main(String[] args) {SpringApplication.run(SpringbootQuickstartApplication.class, args);}}

springboot工程建设

手动创建SpringBoot工程
创建maven工程
引入依赖
提供启动类

springboot配置文件

properties配置文件
yaml 配置文件

目的:
在这里插入图片描述
实现代码:
在这里插入图片描述

跳转路径改变:
在这里插入图片描述
在这里插入图片描述
开发中一般使用yml文件

yml配置信息书写和获取

1.配置信息书写
值钱边必须有空格,作为分隔符
使用空格作为缩进表示层级关系,相同层级左侧对齐
2.配置信息获取
@Value(“${键名}”)
@ConfigurationProperties(prefix=“前缀”)

springboot整合mybatis

在这里插入图片描述
1.创建表

create database if not exists mybatis;use mybatis;create table user(id int unsigned primary key auto_increment comment 'ID',name varchar(100) comment '姓名',age tinyint unsigned comment '年龄',gender tinyint unsigned comment '性别, 1:男, 2:女',phone varchar(11) comment '手机号'
) comment '用户表';insert into user(id, name, age, gender, phone) VALUES (null,'白眉鹰王',55,'1','18800000000');
insert into user(id, name, age, gender, phone) VALUES (null,'金毛狮王',45,'1','18800000001');
insert into user(id, name, age, gender, phone) VALUES (null,'青翼蝠王',38,'1','18800000002');
insert into user(id, name, age, gender, phone) VALUES (null,'紫衫龙王',42,'2','18800000003');
insert into user(id, name, age, gender, phone) VALUES (null,'光明左使',37,'1','18800000004');
insert into user(id, name, age, gender, phone) VALUES (null,'光明右使',48,'1','18800000005');

2.创建工程 springbootquickstart
3.导入依赖

    <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency>
    <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

4.application.yml配置文件

#数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisusername: rootpassword: 123456
mybatis:configuration:map-underscore-to-camel-case: true #开启驼峰命名和下划线命名的转换

5.创建pojo包,创建User.java

java">package com.itheima.springbootquickstart.pojo;public class User {private Integer id;private String name;private Short age;private Short gender;private String phone;public User() {}public User(Integer id, String name, Short age, Short gender, String phone) {this.id = id;this.name = name;this.age = age;this.gender = gender;this.phone = phone;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}public Short getGender() {return gender;}public void setGender(Short gender) {this.gender = gender;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", gender=" + gender +", phone='" + phone + '\'' +'}';}
}

6.创建mapper包,创建Usermapper.java

java">package com.itheima.springbootquickstart.mapper;
import com.itheima.springbootquickstart.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface UserMapper {@Select("select * from user where id= #{id}")public User findById(Integer id);}

7.创建Service包,创建UserService.java

java">package com.itheima.springbootquickstart.service;import com.itheima.springbootquickstart.pojo.User;public interface UserService  {public User findById(Integer id);
}

8.创建impl包,创建接口的实现类UserServiceImpl.java

java">package com.itheima.springbootquickstart.service.impl;
import org.springframework.stereotype.Service;
import com.itheima.springbootquickstart.pojo.User;
import com.itheima.springbootquickstart.service.UserService;
import com.itheima.springbootquickstart.mapper.UserMapper;public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic User findById(Integer id){return  userMapper.findById(id);}}

9.创建Controller包,创建UserController.java

java">package com.itheima.springbootquickstart.controller;
import com.itheima.springbootquickstart.pojo.User;
import com.itheima.springbootquickstart.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;@RestController
@Validatedpublic class UserController {@Autowiredprivate UserService userService;@RequestMapping("/findById")public User findById(Integer id){return userService.findById(id);}}

效果演示
在这里插入图片描述

Bean扫描

Bean注册

注册条件

自动配置原理

自定义starter


http://www.ppmy.cn/embedded/151348.html

相关文章

学习C++:数组

数组&#xff1a; 一&#xff0c;概述 所谓数组&#xff0c;就是一个集合&#xff0c;里面存放了相同类型的元素 特点1&#xff1a;数组中的每个数据元素都是相同的数据类型 特点2&#xff1a;数组是由连续的内存位置组成的 二&#xff0c;一维数组 1.一维数组定义方式 三…

Java 并发编程实战

1. 可见性、原子性和有序性问题&#xff1a;并发编程 Bug 的源头 在并发编程中&#xff0c;常常会遇到由于线程之间共享数据而导致的问题&#xff0c;主要体现在可见性、原子性和有序性上。让我们通过一些代码示例来深入理解这些问题。 可见性问题 public class VisibilityT…

java Redisson 实现限流每秒/分钟/小时限制N个

1.引入maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>red…

使用C#构建一个论文总结AI Agent

前言 我觉得将日常生活中一些简单重复的任务交给AI Agent&#xff0c;是学习构建AI Agent应用一个很不错的开始。本次分享我以日常生活中一个总结论文的简单任务出发进行说明&#xff0c;希望对大家了解AI Agent有所帮助。任务可以是多种多样的&#xff0c;真的帮助自己提升了…

华为交换机---自动备份配置到指定ftp/sftp服务器

华为交换机—自动备份配置到指定ftp服务器 需求 交换机配置修改后及时备份相关配置,每次配置变化后需要在1分钟后自动进行保存,并且将配置上传至FTP服务器;每隔30分钟,交换机自动把配置上传到FTP服务器。 1、定时保存新配置的时间间隔为*分钟(1天=1440),默认为30分钟(…

VSCode函数调用关系图插件开发(d3-graphviz)

文章目录 1、如何在VSCode插件webview中用d3-graphviz绘图2、VSCode插件使用离线d3.min.js、d3-graphviz3、使用 `@hpcc-js/wasm` 包在 Node.js 环境直接转换dot为svg1、如何在VSCode插件webview中用d3-graphviz绘图 我来帮你创建一个 VS Code 插件示例,实现右键菜单触发 Web…

适配无gps硬件机型

由于部分WiFi版本的小米平板&#xff08;例如&#xff1a;小米平板5 WiFi版等&#xff09;无GPS硬件&#xff0c;即使用户开启位置服务&#xff0c;应用也无法获取到GPS Provider&#xff0c;部分依赖于GPS位置服务的应用可能会提示“未开启位置服务或出现其他问题”&#xff0…

Scala_【4】流程控制

第四章 分支控制if-else单分支双分支多分支返回值嵌套分支 For循环控制包含边界不包含边界循环守卫循环步长嵌套循环循环返回值 While循环Break友情链接 分支控制if-else 单分支 双分支 多分支 返回值 嵌套分支 For循环控制 Scala也为for循环这一常见的控制结构提供了非常多的…