当前位置:   article > 正文

springBoot入门(快速搭建一个springBoot项目)_springboot搭建

springboot搭建

目录

一、SpringBoot介绍

       1、定义

       2、springBoot简化的配置

       3、应用打包

二、springBoot项目搭建

1.新建一个spring initializr项目

2、点击下一步

3、之后一个springBoot项目就构建完成了。

三、自动配置原理与yml注入

        1、自动配置原理讲解

                   1.1 自动配置源码中关键代码

                   1.2新建一个实体类

                   1.3在yml文件中,为每个属性名赋值,

        2、yml注入

四、多环境配置

1、配置文件讲解:

2、配置文件加载位置


一、SpringBoot介绍

       1、定义

Spring Boot是一个广泛用来构建Java微服务的框架,它基于Spring依赖注入框架来进行工作.Spring Boot允许开发人员使用更少的配置来构建微服务,同时框架本身能够尽可能的减少开发人员的冲突.自动化配置,一般情况下都有默认配置提供一组流行的starter依赖,方便开发人员使用简化应用打包自动化配置,一般情况下都有默认配置

       2、springBoot简化的配置

在Spring应用中,用户将会使用到不同的技术组件,包括:JDBC数据源(DBCP,Druid)、消息队列(RabbitMQ)、文件系统以及应用缓存(Redis)等.开发人员需要在需要这些功能时,停下来,仔细分析一下自己究竟需要什么?需要的内容属于哪个依赖(“哦,我需要MyBatis依赖”),然后花费大量的时间在依赖组织和排除上.SpringBoot提供了功能(一批jar包依赖)的依赖(starter),它让开发人员声明需要的功能,而不用去关系究竟如何处理依赖关系.

       3、应用打包

SpringBoot是一组jar包和符合其约定的配置的构建块,因此它不会运行在现有的应用服务器中,而使用SpringBoot的大多数开发人员更喜欢的是直接运行的这种自包含的jar包。

二、springBoot项目搭建

使用的IDEA版本是2021.3月份的版本,其他版本也是一样的新建项目

1.新建一个spring initializr项目

将服务器url改成start.aliyun.com

2、点击下一步

3、之后一个springBoot项目就构建完成了。

以下是运行项目入口

pom.xml:

  1. <?xml version="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.0</modelVersion>
  5. <groupId>com.ZJ</groupId>
  6. <artifactId>springBoot</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>springBoot_01</name>
  9. <description>springBoot_01</description>
  10. <properties>
  11. <java.version>1.8</java.version>
  12. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  13. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  14. <spring-boot.version>2.4.1</spring-boot.version>
  15. </properties>
  16. <dependencies>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-web</artifactId>
  20. </dependency>
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-web</artifactId>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-configuration-processor</artifactId>
  28. <optional>true</optional>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-devtools</artifactId>
  33. <scope>runtime</scope>
  34. <optional>true</optional>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.projectlombok</groupId>
  38. <artifactId>lombok</artifactId>
  39. <optional>true</optional>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework.boot</groupId>
  43. <artifactId>spring-boot-starter-test</artifactId>
  44. <scope>test</scope>
  45. </dependency>
  46. </dependencies>
  47. <dependencyManagement>
  48. <dependencies>
  49. <dependency>
  50. <groupId>org.springframework.boot</groupId>
  51. <artifactId>spring-boot-dependencies</artifactId>
  52. <version>${spring-boot.version}</version>
  53. <type>pom</type>
  54. <scope>import</scope>
  55. </dependency>
  56. </dependencies>
  57. </dependencyManagement>
  58. <build>
  59. <plugins>
  60. <plugin>
  61. <groupId>org.apache.maven.plugins</groupId>
  62. <artifactId>maven-compiler-plugin</artifactId>
  63. <version>3.8.1</version>
  64. <configuration>
  65. <source>1.8</source>
  66. <target>1.8</target>
  67. <encoding>UTF-8</encoding>
  68. </configuration>
  69. </plugin>
  70. <plugin>
  71. <groupId>org.springframework.boot</groupId>
  72. <artifactId>spring-boot-maven-plugin</artifactId>
  73. <version>2.4.1</version>
  74. <configuration>
  75. <mainClass>com.zj.springboot.SpringBoot01Application</mainClass>
  76. </configuration>
  77. <executions>
  78. <execution>
  79. <id>repackage</id>
  80. <goals>
  81. <goal>repackage</goal>
  82. </goals>
  83. </execution>
  84. </executions>
  85. </plugin>
  86. </plugins>
  87. </build>
  88. </project>

三、自动配置原理与yml注入

        1、自动配置原理讲解

                   1.1 自动配置源码中关键代码

自动配置是根据前缀名来的

@ConfigurationProperties(
    prefix = "server",
    ignoreUnknownFields = true
)

                   1.2新建一个实体类

student,加上@Component
@Data 实现get和set方法
@NoArgsConstructor  无参构造
@AllArgsConstructor   有参构造
@ConfigurationProperties(prefix = "student") 将配置前缀设置为自己的前缀

以上五个注解

  1. package com.zj.springboot.pojo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import org.springframework.beans.factory.annotation.Value;
  6. import org.springframework.boot.context.properties.ConfigurationProperties;
  7. import org.springframework.stereotype.Component;
  8. import java.util.*;
  9. @Component
  10. @Data
  11. @NoArgsConstructor
  12. @AllArgsConstructor
  13. @ConfigurationProperties(prefix = "student")
  14. public class Student {
  15. private String name;
  16. private String password;
  17. private String sex;
  18. private int age;
  19. private boolean speech;
  20. List<String> hobby=new ArrayList<>();
  21. Map<String,String> tedian=new HashMap<>();
  22. Set<String> statue=new HashSet<>();
  23. }

                   1.3在yml文件中,为每个属性名赋值,

  1. #server.port=8081
  2. student :
  3. name : 小明
  4. password : 123
  5. sex : 男
  6. age : 12
  7. speech : true
  8. hobby :
  9. - 喝茶
  10. - 饮酒
  11. tedian :
  12. { k1 : 跑步 }
  13. statue :
  14. - 183
  15. spring :
  16. profiles:
  17. active: dev
  18. server:
  19. port: 8080

运行结果:

      Student(name=小明, password=123, sex=男, age=12, speech=true, hobby=[喝茶, 饮酒], tedian={k1=跑步}, statue=[183])
          

        2、yml注入

1、支持松散绑定,复杂数据类型

     2、yml注入形式:分层次进行

  1. #server.port=8081
  2. student :
  3. name : 小明
  4. password : 123
  5. sex : 男
  6. age : 12
  7. speech : true
  8. hobby :
  9. - 喝茶
  10. - 饮酒
  11. tedian :
  12. { k1 : 跑步 }
  13. statue :
  14. - 183
  15. spring :
  16. profiles:
  17. active: dev
  18. server:
  19. port: 8080

3、和传统.properties相对比

1、yml(支持松散绑定,复杂数据类型) properties(不支持松散绑定)

2、yml取值形式灵活,.properties,需要配合@Value("${xx}")使用

四、多环境配置

1、配置文件讲解:

     除了有application.yml还有其他两种文件

      运行文件

      application-test.yaml  测试文件      

例如: 在application.yml文件的端口号可以在 application-dev.yaml打上,在application.yml只要配置好application-dev.yaml就行

application.yml:

  1. #server.port=8081
  2. student :
  3. name : 小明
  4. password : 123
  5. sex : 男
  6. age : 12
  7. speech : true
  8. hobby :
  9. - 喝茶
  10. - 饮酒
  11. tedian :
  12. { k1 : 跑步 }
  13. statue :
  14. - 183
  15. spring :
  16. profiles:
  17. active: dev
  18. #server:
  19. # port: 8080

  application-dev.yaml:

server:
  port: 8081

2、配置文件加载位置

先加载properties在加载yml

加载位置优先级:

1. config/application.properties(项目根目录中config目录下)

2. config/application.yml

3. application.properties(项目根目录下)

4. application.yml

5. resources/config/application.properties(项目resources目录中config目录下)

6. resources/config/application.yml

7. resources/application.properties(项目的resources目录下)

8. resources/application.yml

通过server.port了解其自动装配 

今天知识就分享到这了,希望能够帮助到你!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/57596
推荐阅读
相关标签
  

闽ICP备14008679号