SpringBoot入门


一、SpringBoot 入门学习

SpringBoot是一个快速开发的框架,能够帮助我们快速整合第三方框架(主要借助于 Maven 依赖关系),完全采用注解化,简化 XML 配置,内置嵌入 Http 服务器(Tomcat, Jetty),默认嵌入 Tomcat 服务器,最终以 Java 应用程序进行执行。

       SpringBoot 的主要特点为:

                          1、简化maven,只需要- -两个依赖就可以实现Spring+ SpringMVC框架

                          2、自动配置Spring,快速构建项目,省去配置文件

                          3、零配置,注解化,约定大于配置,简化XML操作

                          4、对主流开发框架的无配置集成

    

  SpringBoot环境要求:
       1、jdk要求1.8以上
       2、使用Maven进行开发

  SpringBoot基础开发流程:

       1、创建Maven项目

        第一步新建一个Maven项目 New>Maven Project

           

                              Next下一步

                             

 

 

                创建好的项目结构

         

 

 

 

          

 

 

         2、引入SpringBoot的pom依赖

        父模块依赖: spring- boot- starter-parent

        启动依赖: spring- boot-starter-web

        测试依赖: spring- boot-starter-test

        热部署依赖: spring-boot- devtools

        

<!-- Spring Boot 启动父依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath />
    </parent>
    
    <!-- 项目设置:编码格式UTF-8 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
        <!--单元测试依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        
        <!-- Spring Boot SpringMVC框架依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!-- Spring Boot 测试依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用 devtools,需要重新引入 -->
            <scope>true</scope><!-- 热部署 -->
        </dependency>
    </dependencies>

    粘贴到如下位置

     

 

 

     

    第三步创建SpringBoot入口函数

    在项目的src/main/java目录下的com.ysd.demo.demo包中随意创建一个带main()方法的类(如类名为:App类),在类的上面添加注解          @SpringBootApplication, 并在 main()的方法体中添加SpringApplication.run(类名.class,args)。此时该类为 SpringBoot 的入口函数即主模块,内容如下:

    

 

          新建一个class       Ctrl+N  建一个class   Finish完成

      

 

    入口函数标记注解:@SpringBootApplication

 

     

      

    第四步创建Controller控制器   ,创建控制器输出内容到页面效果展示

    

    

    第五步运行项目  两种方法运行项目

    1、右键Run As> Spring Boot App

    2、Boot Dashboard仪表板上  如下图

    

  注意:1、默认端口号8080   2、默认访问地址没有项目名

          运行结果如下

 

 

 

    

 

 

    第六步打成jar包发布项目

        1、 pom.xml 文件中添加一个 SpringBoot 插件依赖

<build>
<plugins>
 <!-- SpringBoot插件 -->
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
</plugins>
 <!-- SpringBoot项目打包jar名称 -->
<finalName>demo</finalName>
</build>

 

        

 

       注意:在打包之前需要先确定项目的java环境是jdk而非jre

       点击项目右键Build Path

        

 

 

         

 

 

 

 

      打包命令clean package

      右键项目--run as --maven build--golas输入 clean package

      

 

      

 

      把jar包放在其中一个盘里(例如我在E盘的test文件夹中)

      

 

 

 

      cmd运行jar包

      java -jar jar包名(demo.jar)

      Ctrl+c  关闭命令

      

 

      cmd修改端口号 :java -jar demo.jar --server.port=4399

      

 

 

二. SpringBoot配置文件

 

     1、Spring Boot框架遵循约定大于配置。

                2、SpringBoot配置文件

                   配置文件的两种文件格式:1、application.properties   2、application.yaml

      如果两个在同一级目录,默认读取application.properties

                       SpringBoot默认的主配置文件名

                     默认配置文件放在resources

     下面是第一种文件格式:application.properties 

    

 

 

     

 

 

     这样就新建成功了

    

 

    

 

 

     

 

 

     下面是第二种文件格式application.yaml

      YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。 

    YAML 有以下基本规则: 

           大小写敏感

          使用缩进表示层级关系

          禁止使用 tab 缩进,只能使用空格键
          缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
          使用#表示注释
          字符串可以不用引号标注
     

      一定要有层次结构

       

 

      

 

      

        配置文件的路径及优先级

        配置文件在项目中有四个可以放的地址

           1、根目录下(二当家)

          2、项目根目录中config下(大当家)

          3、项目的resources目录下(四当家)

          4、项目的resources中的config目录下(三当家)

           在四个配置文件存储位置,读取会有优先级是2>1>4>3

           结构如下:

             

 

 

            下面来测试一下

 

            首先根目录下

            

 

             然后项目根目录中config

             

 

 

               其次项目的resources目录下

              

 

 

               最后项目的resources中的config目录下

    

 

 

       测试结果:还是先执行根目录下的

        

 

         

 

         如果报了这个错就说明端口号没占用了

        

 

三、 SpringBoot多环境配置

      在项目的整个研发过程中,同一个项目会面临着不同的使用环境。使用环境不同,需要的配置信息也会不同。例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据库。如果在项目中只有 application.properties(application.yml)一个配置文件的话,该文件中的属性值会经常需要改动,就会使项目整体的体验变得非常差,而且出错率也极高。这时候,我们可以用 profile 在不同的环境下配置不同的配置文件。这样一来,在 SpringBoot 项目中就出现了多环境的配置文件。 

      根据不同的环境定义不同的配置环境--对应配置文件

      SpringBoot环境配置公式:application-{profile} .properties

      {profile} dev或者test或者prod  也可以自定义

      开发环境(模式) dev application-dev . properties

      测试环境(模式) test application-test. Properties

      生产环境(模式) prod application-prod. Properties

      使用spring.profiles.active=dev(环境) 切换环境

      下面如何创建:

        src/main/resources右键新建一个file

        结构如下:

        

 

        

 

     spring.profiles.active=(环境)dev    #dev就是配置文件名中间的名称

     

 

     

 

 

 四、自定义属性

       SpringBoot 可以在配置文件中修改默认约定的属性值,还可以添加一些自己需要的属性,也就是可以自定义一些属性。这些自定义的属性可以使用@Value 注解将属性值注入到 beans 中,或使用@ConfigurationProperties注解将属性值绑定到结构化的 beans 中 。 

        自定义的属性可以放到 application.properties(或 application.yml)全局配置文件中,也可以在自定义的其他配置文件中定义

        下面自定义一个一个学生信息  使用的也是propertisyanl文件使用propertis

         右键--new  file  --stu.properties   --右键编码格式

          

          如何读取自定义属性值到实体类

          两种方式:

               使用@Value注解将属性值单独注入指定到beans 单个

               使用@ConfigurationProperties注解将属性值绑定到特定结构化的beans中  批量

              第一种  使用@Value注解将属性值单独注入指定到beans

              新建一个class

            

 

 

            

              

            

            1要注入自定义属性先@Component

                     @Component :将实体类交给Spring进行管理 进行bean化,才能进行注入自定义属性值

            2绑定自定义配置文件  指定配置文件的地址

            3、使用@value("${属性名|}")   ${属性名|}--spel表达式

     

 

 

       

 

       使用@ConfigurationProperties注解将属性值绑定到特定结构化的beans

       1、导入依赖

            

 

   

 

       

 

        

 

          @ConfigurationProperties和@Value优缺点

           1) 可以从配置文件中批量注入属性;

          2) 支持获取复杂的数据类型;

          3) 对属性名匹配的要求较低,比如 user-name,user_name,userName,USER_NAME 都可以取值;

          4) 支持 JAVA 的 JSR303 数据校验;
          5) 缺点是不支持强大的 SpEL 表达式;

        

        @Value 注解的优缺点正好相反,它只能一个个配置注入值;不支持数组、集合等复杂的数据类型;不支持数据校验;对属性名匹配有严格的要求。最大的特点是支持 SpEL 表达式,使其拥有更丰富的功能。 

 

 

 

 

 

 

 

 

 

 

           

 

 

        

 

 

         

 

 

 

 

 

 

 

 

 

 

       

 

     

 

 

 

 

    

 

            


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM