• 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 的起步依赖

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>com.itheimagroupId>
    7. <artifactId>study_springboot_01artifactId>
    8. <version>1.0version>
    9. <parent>
    10. <groupId>org.springframework.bootgroupId>
    11. <artifactId>spring-boot-starter-parentartifactId>
    12. <version>2.5.6version>
    13. parent>
    14. <dependencies>
    15. <dependency>
    16. <groupId>org.springframework.bootgroupId>
    17. <artifactId>spring-boot-starter-webartifactId>
    18. dependency>
    19. dependencies>
    20. project>

     4.编写 SpringBoot 启动类

     

    1. @SpringBootApplication
    2. public class DemoApplication {
    3. public static void main(String[] args) {
    4. SpringApplication.run(DemoApplication.class,args);
    5. }
    6. }

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

    1. @RestController
    2. public class HelloController {
    3. @RequestMapping("/hello")
    4. public String hello(String name ){
    5. return "hello world!!!!";
    6. }
    7. }

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

     2.3快速构建SpringBoot项目

    1.使用Spring Initializr 创建SpringBoot

     

     2.配置项目信息

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

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

     5.编写Controller代码

    1. @RestController
    2. public class HelloController {
    3. @RequestMapping("/sayHello")
    4. public String sayHello(){
    5. return "hello world !!!";
    6. }
    7. }

     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

    1. # yaml
    2. personName: zhangsan

    注意:

    1. Value之前有一个空格

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

    对象(map)数据:

    1. person:
    2. name: haohao
    3. age: 31
    4. addr: beijing
    5. #或者(了解即可)
    6. person: {name: haohao,age: 31,addr: beijing}

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

    集合、数组数据语法:

    1. # 数组或集合
    2. city:
    3. - beijing
    4. - shanghai
    5. # 行内写法
    6. address: [beijing,shanghai]
    7. #集合中的元素是对象形式
    8. students:
    9. - name: zhangsan
    10. age: 18
    11. score: 100
    12. - name: lisi
    13. age: 28
    14. score: 88
    15. - name: wangwu
    16. age: 38
    17. score: 90

    3.3 配置文件属性注入Bean

    3.3.1 @Value

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

    1. @Value("${personName}")
    2. private String personName;
    3. // 还可以这样
    4. @Value("${person.name}")
    5. private String persionName;
    6. // 还可以这样
    7. @Value("${students[0].name}")
    8. private String persionName;

     

    3.3.2 @ConfigurationProperties

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

    1. @Data
    2. @Component
    3. @ConfigurationProperties(prefix = "person")
    4. public class Person {
    5. private String name;
    6. private String age;
    7. private String addr;
    8. }

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

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-configuration-processorartifactId>
    4. <optional>trueoptional>
    5. dependency>

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

    4.1 集成Mybatis **

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

     2.勾选依赖坐标

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

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

     

    练习:

    pom.xml 

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <groupId>com.itheimagroupId>
    6. <artifactId>spring-boot-mybatisartifactId>
    7. <version>0.0.1-SNAPSHOTversion>
    8. <name>spring-boot-mybatisname>
    9. <description>Demo project for Spring Bootdescription>
    10. <properties>
    11. <java.version>1.8java.version>
    12. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    13. <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    14. <spring-boot.version>2.3.7.RELEASEspring-boot.version>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.bootgroupId>
    19. <artifactId>spring-boot-starter-webartifactId>
    20. dependency>
    21. <dependency>
    22. <groupId>org.mybatis.spring.bootgroupId>
    23. <artifactId>mybatis-spring-boot-starterartifactId>
    24. <version>2.1.4version>
    25. dependency>
    26. <dependency>
    27. <groupId>org.projectlombokgroupId>
    28. <artifactId>lombokartifactId>
    29. dependency>
    30. <dependency>
    31. <groupId>mysqlgroupId>
    32. <artifactId>mysql-connector-javaartifactId>
    33. <scope>runtimescope>
    34. dependency>
    35. <dependency>
    36. <groupId>org.springframework.bootgroupId>
    37. <artifactId>spring-boot-starter-testartifactId>
    38. <scope>testscope>
    39. <exclusions>
    40. <exclusion>
    41. <groupId>org.junit.vintagegroupId>
    42. <artifactId>junit-vintage-engineartifactId>
    43. exclusion>
    44. exclusions>
    45. dependency>
    46. dependencies>
    47. <dependencyManagement>
    48. <dependencies>
    49. <dependency>
    50. <groupId>org.springframework.bootgroupId>
    51. <artifactId>spring-boot-dependenciesartifactId>
    52. <version>${spring-boot.version}version>
    53. <type>pomtype>
    54. <scope>importscope>
    55. dependency>
    56. dependencies>
    57. dependencyManagement>
    58. <build>
    59. <plugins>
    60. <plugin>
    61. <groupId>org.apache.maven.pluginsgroupId>
    62. <artifactId>maven-compiler-pluginartifactId>
    63. <version>3.8.1version>
    64. <configuration>
    65. <source>1.8source>
    66. <target>1.8target>
    67. <encoding>UTF-8encoding>
    68. configuration>
    69. plugin>
    70. <plugin>
    71. <groupId>org.springframework.bootgroupId>
    72. <artifactId>spring-boot-maven-pluginartifactId>
    73. <version>2.3.7.RELEASEversion>
    74. <configuration>
    75. <mainClass>com.itheima.springbootmybatis.SpringBootMybatisApplicationmainClass>
    76. configuration>
    77. <executions>
    78. <execution>
    79. <id>repackageid>
    80. <goals>
    81. <goal>repackagegoal>
    82. goals>
    83. execution>
    84. executions>
    85. plugin>
    86. plugins>
    87. build>
    88. project>

    我们的application.xml 配置文件

    1. spring:
    2. datasource:
    3. driver-class-name: com.mysql.cj.jdbc.Driver
    4. username: root
    5. password: root
    6. #时区必须配置否则报错,注意数据库名切换为自己的数据库名称
    7. url: jdbc:mysql://127.0.0.1/itheima?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    8. #mybatis 相关配置
    9. mybatis:
    10. mapper-locations: classpath:mapper/*.xml
    11. type-aliases-package: com.itheima.springbootmybatis.pojo
    12. #打印日志
    13. logging:
    14. level:
    15. com.itheima.springbootmybatis:
    16. debug

     UserMapper.xml 配置文件

    1. "1.0" encoding="UTF-8" ?>
    2. mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="com.itheima.springbootmybatis.dao.UserMapper">
    6. <select id="selectAll" resultType="User">
    7. select * from user;
    8. select>
    9. mapper>

     启动类

    1. import org.springframework.boot.SpringApplication;
    2. import org.springframework.boot.autoconfigure.SpringBootApplication;
    3. @SpringBootApplication
    4. public class SpringBootMybatisApplication {
    5. public static void main(String[] args) {
    6. SpringApplication.run(SpringBootMybatisApplication.class, args);
    7. }
    8. }

     UserService接口

    1. import com.itheima.springbootmybatis.pojo.User;
    2. import java.util.List;
    3. public interface UserService {
    4. // 查询所有
    5. List selectAll();
    6. }

     UserServiceImpl实现类

    1. import java.util.List;
    2. @Service
    3. public class UserServiceImpl implements UserService {
    4. @Autowired
    5. private UserMapper userMapper;
    6. @Override
    7. public List selectAll() {
    8. List users = userMapper.selectAll();
    9. return users;
    10. }
    11. }

     UserMapper 接口

    1. import com.itheima.springbootmybatis.pojo.User;
    2. import org.apache.ibatis.annotations.Mapper;
    3. import java.util.List;
    4. @Mapper//告知 spring 我的mapper接口在这里
    5. public interface UserMapper {
    6. // 查询所有
    7. List selectAll();
    8. }

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

    或者:

     

     UserController 

    1. import com.itheima.springbootmybatis.pojo.User;
    2. import com.itheima.springbootmybatis.service.UserService;
    3. import lombok.extern.slf4j.Slf4j;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. import org.springframework.web.bind.annotation.RestController;
    7. import java.util.List;
    8. @RestController
    9. @Slf4j// lombok打印日志
    10. public class UserController {
    11. @Autowired
    12. private UserService userService;
    13. /*
    14. * 查询所有
    15. * */
    16. @RequestMapping("/findAll")
    17. public List findAll(){
    18. System.out.println("查询用户信息:");
    19. // log.info()
    20. return userService.selectAll();
    21. }
    22. }

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    HJ33 整数与IP地址间的转换
    EthernetIP 转MODBUS RTU协议网关连接FANUC机器人作为EthernetIP通信从站
    Python画爱心——谁能拒绝用代码敲出会跳动的爱心呢~
    Java练习 day1(LeetCode简单题15道)
    [每周一更]-(第13期):灰度测试的解释说明
    用于静电放电敏感器件的包装的性能和要求分类-2
    那些年白上了的线代课
    计算机毕业设计Python+Django的银行取号排队系统(源码+系统+mysql数据库+Lw文档)
    代码随想录day2
    使用asyncua模块的call_method方法调用OPC UA的Server端方法报错:asyncio.exceptions.TimeoutError
  • 原文地址:https://blog.csdn.net/weixin_50769390/article/details/126805746