java SpringBoot 基础入门

1、SpringBoot 入门学习

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

       SpringBoot 的主要特色为:

                          一、简化maven,只须要- -两个依赖就能够实现Spring+ SpringMVC框架spring

                          二、自动配置Spring,快速构建项目,省去配置文件数据库

                          三、零配置,注解化,约定大于配置,简化XML操做数组

                          四、对主流开发框架的无配置集成服务器

    

  SpringBoot环境要求:
       一、jdk要求1.8以上
       二、使用Maven进行开发app

  SpringBoot基础开发流程:框架

       一、建立Maven项目maven

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

                              Next下一步

                建立好的项目结构

         

         二、引入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控制器   ,建立控制器输出内容到页面效果展现

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

    一、右键Run As> Spring Boot App

    二、在Boot Dashboard仪表板上  以下图

    

    第六步打成jar包发布项目

        一、在 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配置文件

 

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

                二、SpringBoot配置文件

                   配置文件的两种文件格式:一、application.properties   二、application.yaml

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

                       在SpringBoot中默认的主配置文件名

                     默认配置文件放在resources中

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

 

     这样就新建成功了

https://www.shangmayuan.com/a/e259a9a2a9054da1b8f97561.html

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

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

    YAML 有如下基本规则: 

           大小写敏感

          使用缩进表示层级关系

          禁止使用 tab 缩进,只能使用空格键

          缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级

          使用#表示注释

          字符串能够不用引号标注

   

        配置文件的路径及优先级

        配置文件在项目中有四个能够放的地址

           一、根目录下(二当家)

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

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

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

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

 

3、 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就是配置文件名中间的名称

 

 

 4、自定义属性

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

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

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

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

          

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

          两种方式:

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

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

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

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

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

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

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

 

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

       一、导入依赖

 

          @ConfigurationProperties和@Value优缺点

           1) 能够从配置文件中批量注入属性;

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

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

          4) 支持 JAVA 的 JSR303 数据校验;

          5) 缺点是不支持强大的 SpEL 表达式;

        

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值