【第一天】 SpringBoot自学之旅

SpringBoot之旅开启

OneDay


简言

springBoot刚开始接触的第一印象是高大尚,为什么?接触新技术嘛,自然会有那种高不可攀的感觉,当初学习spring整合的时候,各种繁琐的配置文件,配置出错,满盘皆输,毕竟和spring挂钩,多多少少还有一些阴影存在,吐槽结束,回归正题!


前提概要

  • springboot启动方式
  • springboot相关注解
  • springboot配置文件
  • springboot案例

初期

一、maven配置
  • spring-boot-starter-parent : springboot核心jar包
  • spring-boot-starter-web : springboot提供web支持
  • spring-boot-starter-test : springboot提供单元测试
  • spirng-boot-configuration-processor : springboot配置处理核心jar包
  • spring-boot-maven-plugin : springboot-maven插件

二、springboot启动方式
  1. springboot程序编写完成,在指定的main方法中,Run,默认端口号8080
  2. cmd操作,进入springboot工程目录下(包含pom.xml文件的目录),用maven指令打开,mvn spring-boot:run
  3. -java-jar方式打开 – 待更新

三、springboot相关注解

@Runwith : 测试运行器 -

可以指定相关的测试器进行单元测试。Ps:JUnit为单元测试提供了一个默认的测试运行器BlockJUnit4ClassRunner,但是没有限制必须使用默认的运行器。
— springRunner.Class指spring提供的Junit测试类。

@springBootTest :

对于springboot不同方式的请求测试,可以通过其注解进行单元测试,配合@Runwith注解。

@springBootApplication :

springboot程序启动入口。springboot为三大注解@Configuration,@EnableAutoConfiguration,@ComponentScan综合的统一注解。等同于@SpringBootApplication
= (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。

@ConfigurationProperties(prefix=” “) :

初期的时候,我们将一些默认初始化的参数存放到springboot的配置文件中,进行初始化赋值并依次去调用,自然这样的操作十分繁琐,对于代码的维护和更新十分不便,为此springboot提供其注解,将默认参数映射到指定的实体类中,我们只需要调用其实体类,就可以对实体类中相关的变量进行操作,大大提高了代码的维护型。

@Value(“${ }”) :

调用配置文件初始化赋值的变量


四、spirnboot配置文件
springboot配置文件专用的后缀名为yml,其配置格式易简约,具有观赏性。当然第一天所学,
把用到的配置信息陈列一下:

application.yml

  • 指定访问yml文件 - application-prod.yml

spring:
  profiles:
    active: prod

application-prod.yml

  • 可以在配置文件中,自定义初始化值
girl:
    cupsize: B
    girlname: xinyan
    age: 18
五、springBoot案例

工程目录
这里写图片描述


1. maven导入

介绍

 - springBoot 版本 1.5.6
 - spring-boot-starter-thymeleaf : 模版引擎核心架包
 - spring-boot-starter-data-jpa : springboot提供JPA的核心架包
 - spring-boot-starter-aop : springboot提供aop的核心架包
 - mysql-connector-java : mysql数据库连接的核心架包
<?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>org.maven.springboot</groupId>
    <artifactId>springBootDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.6.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>1.5.6.RELEASE</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>1.5.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.5.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <version>1.5.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>1.5.6.RELEASE</version>
            </plugin>
        </plugins>
    </build>
</project>

2. 导入

介绍

 - HellowController.java
 - C层的相关接口,对自定义变量,不同形式传参进行测试
package org.maven.springboot.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class HellowController {

    @Autowired
    private org.maven.springboot.pojo.girlProperties girlProperties;

     /*----------------------------------- 自定义参数使用 -------------------------------------*/
//    @Value("${cupsize}")
//    private String cupSize;
//    @Value("${girlname}")
//    private String girlname;
//    @Value("${age}")
//    private int age;

    @RequestMapping(value = "hello",method = RequestMethod.GET)
    public String HelloSay(){
        return girlProperties.getCupsize();
    }

    /*----------------------------------- 两种不同形式的传参 -------------------------------------*/

    /**
     * PathVariable
     * @param id int
     * @return String
     */
    @RequestMapping(value = "say/{id}/hello",method = RequestMethod.GET)
    public int demoOne(@PathVariable Integer id){
        return id;
    }

    /**
     * RequestParam
     *   required : 是否需要传参
     *   defaultValue : 参数默认值
     * @param id int
     * @return String
     */
    @RequestMapping(value = "say/hello",method = RequestMethod.GET)
    public String demoTwo(@RequestParam(value = "id",required = false,defaultValue = "0") Integer id){
        return girlProperties.getGirlname();
    }
}

3.GirlApplication.java

介绍

 - GirlApplication.java
 - springboot启动入口
package org.maven.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class GirlApplication {

    public static void main(String[] args){
        SpringApplication.run(GirlApplication.class,args);
    }
}

4.实体类girlProperties

介绍
@Component 依赖注入
@ConfigurationProperties(prefix = “girl”) 方便操作实体类中的相关变量

package org.maven.springboot.pojo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "girl")
public class girlProperties {
    private String cupsize;
    private String girlname;
    private int age;

    public String getCupsize() {
        return cupsize;
    }

    public void setCupsize(String cupsize) {
        this.cupsize = cupsize;
    }

    public String getGirlname() {
        return girlname;
    }

    public void setGirlname(String girlname) {
        this.girlname = girlname;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

5.yml配置文件

介绍

1.application.yml

spring:
  profiles:
    active: prod

2.application-prod.yml

server:
  port: 8081
  context-path: /demo
girl:
  cupsize: F
  girlname: xinyan
  age: 18

以上实例为springboot的入门级demo,默认端口+地址:localhost:8081/demo/{自定义url接口},后续会更新springboot + mysql + JPA 的 相关文章….. 上传的工程目录,有些没有涉及到的是后续文章中,JPA实现数据库操作,及AOP的探索。学习之路,互利共勉,Boot小白有不足之处,希望大家多多指出,一起学习!

未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值