SpringBoot 快速开发

目录

1.SpringBoot 简介

 1.1SpringBoot核心功能

2.SpringBoot快速入门

2.1开发环境需求:

2.2Maven搭建SpringBoot工程

 2.3快速构建SpringBoot项目

3.SpringBoot的配置文件

 3.1yaml配置文件

3.2 yml支持数据格式

3.3 配置文件属性注入Bean

3.3.1 @Value

3.3.2 @ConfigurationProperties

 4.SpringBoot 整合其他框架(重点)

4.1 集成Mybatis **

练习:


1.SpringBoot 简介

SpringBoot 提供了一种快速开发使用Spring 的方式,(以前ssm整合的时候,还要自己配置)现在SpringBoot 可以让开发人员不必再配置与逻辑业务之间进行思维的切换,全身心投入到逻辑业务编写中。从而大大的提高了开发效率,一定程度上缩短了项目周期。

官网https://www.baidu.com/link?url=uqdPSphqTeVPwj9ctpa0r9v5gvu6E3QAj4ZVZD0XR5C48c4uVIe0ySa8l1TwqzYoMqJWnhMn2dcx2nf2L1-gEK&wd=&eqid=91c651730032489200000003631d8ea9

 了解更多SpringBoot 内容:Springboot入门到精通(超详细文档)_cuiqwei的博客-CSDN博客_springboot文档

 1.1SpringBoot核心功能

SpringBoot 提供了一种快速开发Spring项目的方式。而不是对Spring功能上的增强。

1自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。

2起步依赖

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。

简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

3辅助功能

提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。

2.SpringBoot快速入门

2.1开发环境需求:

Spring Boot : 2.5.6 版本由官方推荐

jdk: Java8

项目构建工具及版本: Maven ,版本要求是3.3及以上

2.2Maven搭建SpringBoot工程

1.创建一个空工程(不创建空工程也可以)

2.创建Maven项目

 3.pom.xml 文件 中配置负父坐标 和 web 的起步依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

   <groupId>com.itheima</groupId>
    <artifactId>study_springboot_01</artifactId>
    <version>1.0</version>
   <!--spring boot 父项目-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
    </parent>

    <!-- 设置起步依赖  就是一套解决方案  完成web工程-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

 4.编写 SpringBoot 启动类

 

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }
}

 5.编写HelloController  写前端访问路径

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(String name ){
        return "hello world!!!!";
    }
}

 6.访问路径http://localhost:8080/hello测试

 2.3快速构建SpringBoot项目

1.使用Spring Initializr 创建SpringBoot

 

 2.配置项目信息

 3.勾选起步依赖(根据需求)

 4.创建完成后工程目录结构

 5.编写Controller代码

@RestController
public class HelloController {

    @RequestMapping("/sayHello")
    public String sayHello(){
        return "hello world !!!";
    }
}

 6.访问http://localhost:8080/sayHello接口测试

3.SpringBoot的配置文件

application.propertiesapplication.yml(application.yaml)(两种,yml是yaml简化)自定义配置。SpringBoot默认从Resource目录加载自定义配置文件。

有下面3个要点:

  1. SpringBoot提供了2种配置文件类型:properteis和yml/yaml

  2. 默认配置文件名称:application

  3. (了解)在同一级目录下优先级为:properties>yml > yaml

 两种形式的不同。

 3.1yaml配置文件

 YML文件格式是YAML(YAML Aint Markup Language)编写的文件格式。可以直观被电脑识别的格式。容易阅读,容易与脚本语言交互。可以支持各种编程语言(C/C++、Ruby、Python、Java、Perl、C#、PHP),扩展名为.yml或.yaml。

  • 大小写敏感

  • 数据值前边必须有空格,作为分隔符

  • 使用缩进表示层级关系

  • 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层次混乱)。

  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

  • ''#" 表示注释,从这个字符一直到行尾,都会被解析器忽略。

3.2 yml支持数据格式

普通数据语法key: value

# yaml
personName: zhangsan

注意:

  1. Value之前有一个空格

  2. key不要定义为username否则返回的值将是window中的用户名称,username为特定值。

对象(map)数据:

person:
    name: haohao
    age: 31
    addr: beijing
#或者(了解即可)
person: {name: haohao,age: 31,addr: beijing}

注意:yml语法中,相同缩进代表同一个级别

集合、数组数据语法:

# 数组或集合
city:
  - beijing
  - shanghai
# 行内写法
address: [beijing,shanghai]
​
#集合中的元素是对象形式
students:
    - name: zhangsan
      age: 18
      score: 100
    - name: lisi
      age: 28
      score: 88
    - name: wangwu
      age: 38
      score: 90

3.3 配置文件属性注入Bean

3.3.1 @Value

@Value注解将配置文件的值映射到Spring管理的Bean属性值

@Value("${personName}")
private String personName;
// 还可以这样
@Value("${person.name}")
private String persionName;
// 还可以这样
@Value("${students[0].name}")
private String persionName;

 

3.3.2 @ConfigurationProperties

通过注解@ConfigurationProperties(prefix=''配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射。

@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private String age;
    private String addr;
}

 使用@ConfigurationProperties方式必须提供Setter方法,使用@Value注解不需要Setter方法。同时可以在pom中添加如下坐标,这样可以在配置文件中配置数据时有更加友好的提示。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

 4.SpringBoot 整合其他框架(重点)

4.1 集成Mybatis **

1.创建SpringBoot工程: spring-boot-mybatis

 2.勾选依赖坐标

 3.在application.xml 中添加数据库连接信息

spring:
  # 数据源相关配置
  datasource:
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    #时区必须配置否则报错,注意数据库名切换为自己的数据库名称
    url:  jdbc:mysql://127.0.0.1/itheima?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
#mybatis 相关配置
mybatis:
  # 指定接口映射文件的位置
  mapper-locations: classpath:mapper/*.xml
  # 为POJO类指定别名
  type-aliases-package: com.itheima.integration.pojo

 

练习:

pom.xml 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.itheima</groupId>
    <artifactId>spring-boot-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-boot-mybatis</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.itheima.springbootmybatis.SpringBootMybatisApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

我们的application.xml 配置文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root
      #时区必须配置否则报错,注意数据库名切换为自己的数据库名称
    url:  jdbc:mysql://127.0.0.1/itheima?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC


#mybatis 相关配置
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.itheima.springbootmybatis.pojo
#打印日志
logging:
  level:
    com.itheima.springbootmybatis:
      debug

 UserMapper.xml 配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
  映射   现在BrandMapper.xml是一个 关于 user表操作的 映射文件
-->
<!--
   namespace=""  跟接口名 包名+类名 一致
      复制之后需要关注 这个名字是不 接口的包名+类名
   mapper标签里面子标签
     根据的不同操作 选择不同的 标签
       <select>  <insert> <update> <delete>
     id值 跟 接口方法名一致
     参数类型 跟接口方法参数类型一致
     返回值 跟接口的方法的返回值一致

-->
<mapper namespace="com.itheima.springbootmybatis.dao.UserMapper">

    <!--List<User> selectAll();-->
    <select id="selectAll" resultType="User">
        select * from user;
    </select>

</mapper>

 启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootMybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootMybatisApplication.class, args);
    }

}

 UserService接口

import com.itheima.springbootmybatis.pojo.User;

import java.util.List;

public interface UserService {

//    查询所有
    List<User> selectAll();
}

 UserServiceImpl实现类


import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> selectAll() {
        List<User> users = userMapper.selectAll();
        return users;
    }
}

 UserMapper 接口


import com.itheima.springbootmybatis.pojo.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
@Mapper//告知 spring 我的mapper接口在这里
public interface UserMapper {
//    查询所有
    List<User> selectAll();
}

 注意: 这里 @Mapper  告知spring  mapper在这里

或者:

 

 UserController 


import com.itheima.springbootmybatis.pojo.User;
import com.itheima.springbootmybatis.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@Slf4j// lombok打印日志
public class UserController {
    @Autowired
    private UserService userService;

    /*
    * 查询所有
    * */
    @RequestMapping("/findAll")
    public List<User> findAll(){
        System.out.println("查询用户信息:");
//        log.info()
        return userService.selectAll();
    }

}

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
课程简介这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。适用人群刚刚毕业的学生想提高职场竞争力想学从零开发SpringBoot项目想提升SpringBoot项目开发技术想学习SpringBoot项目架构技术想学习企业级项目开发技术就是想学习SpringBoot开发能学到什么从0开发一个类似企业级项目学会能做出市面上90%通用API快速增加1到2年实际开发经验刚毕业学完后能找到满意的工作已经工作学完后最高涨薪30%课程信息全课程目前是82章,155小时,每节视频都经过精心剪辑。在线学习分辨率最高1080P课程知识点1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制12~16章:搭建开发环境,快速入门SpringBoot框架17~20章:快速入门MySQL数据库21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能42~48章:阿里云OSS,话题,MyBatis-plus,应用监控49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索59~61章:商城,集成支付宝SDK,支付宝支付62~64章:常用哈希和加密算法,接口加密和签名65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS81~82章:增强和重构项目,课程总结,后续学习计划
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

華同学.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值