当前位置: 首页 > article >正文

springboot3+vue项目实践-黑马

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

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

提供启动类

//启动类
@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.Driver
    url: jdbc:mysql://localhost:3306/mybatis
    username: root
    password: 123456
mybatis:
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名和下划线命名的转换

5.创建pojo包,创建User.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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender=" + gender +
                ", phone='" + phone + '\'' +
                '}';
    }
}

6.创建mapper包,创建Usermapper.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

package com.itheima.springbootquickstart.service;

import com.itheima.springbootquickstart.pojo.User;

public interface UserService  {
    public User findById(Integer id);
}

8.创建impl包,创建接口的实现类UserServiceImpl.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 {
    @Autowired
    private UserMapper userMapper;
    @Override
    public User findById(Integer id){
        return  userMapper.findById(id);
    }

}

9.创建Controller包,创建UserController.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
@Validated

public class UserController {
        @Autowired
    private UserService userService;
    @RequestMapping("/findById")

    public User findById(Integer id){
        return userService.findById(id);

    }

}

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

Bean扫描

Bean注册

注册条件

自动配置原理

自定义starter


http://www.kler.cn/a/465383.html

相关文章:

  • Tomcat性能优化与负载均衡实现
  • 计算机网络 (15)宽带接入技术
  • 融合表面信息和等变扩散的分子对接模型 SurfDock - 评测
  • HTML——75. 内联框架
  • Jellyfin播放卡顿,占CPU的解决方法
  • 海南省大数据发展中心:数据资产场景化评估案例手册(第二期)
  • 力扣-数据结构-7【算法学习day.78】
  • 周末总结(2024/12/28)
  • 解決當前IP地址僅適用於本地網路
  • 在 Blazor 和 ASP.NET Core 中使用依赖注入和Scoped 服务实现数据共享方法详解
  • Elasticsearch检索之三:官方推荐方案search_after检索实现(golang)
  • 【SpringBoot教程】IDEA快速搭建正确的SpringBoot版本和Java版本的项目
  • PCA降维算法详细推导
  • UE5材质节点Camera Vector/Reflection Vector
  • 2024-12-29-sklearn学习(26)模型选择与评估-交叉验证:评估估算器的表现 今夜偏知春气暖,虫声新透绿窗纱。
  • 【MySQL】通过 Binlog 恢复MySQL数据
  • 解决Docker国内网络问题
  • Yeelight易来与Control4达成战略合作,开启智能家居全球战略新篇
  • Servlet中配置和使用过滤器
  • 《Vue3实战教程》40:Vue3安全
  • k8s启动报错
  • 华为仓颉编程语言与医疗领域的深度融合:技术与实践
  • android studio android sdk下载地址
  • matlab 实现了一个基于阵列信号处理的空间角和极化参数估计系统
  • 【2024年-8月-29日-开源社区openEuler实践记录】A - Ops:智能运维新时代的开源利器
  • Linux centos7 docker安装 (yum快速安装)