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 快速开发 -> 正文阅读

[Java知识库]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();
    }

}

?

?

?

?

?

?

?

?

?

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 10:59:34  更:2022-09-13 11:02:44 
 
开发: 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 13:28:12-

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