哈喽,大家好,我是有勇气的牛排(全网同名)🐮
有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。
前言
SpringBoot是基于Spring开发的开源项目,属于快速开发框架封装了常用的依赖,能够快速整合第三方框架,简化了xml配置,并且去全部采用注解的方式,内置Tomcat、Jetty、Undertow等,默认集成SpringMVC框架。
1 创建Maven项目
maven配置
<!-- SpringBoot依赖配置 -->
<!-- parent指定版本 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2 HelloWorld
package com.couragesteak.service;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableAutoConfiguration
public class HelloWorldService {
    // http://127.0.0.1:8080/hello
    @RequestMapping("/hello")
    public String index() {
        return "你好,有勇气的牛排";
    }
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldService.class, args);
    }
}

2.1 RequestController与 Controller
@RequestController 由 SpringMVC提供,相当于在每个方法添加@ResponseBody注解。
如果在类上加 @RequestController,该类中所有 SpringMVC接口映射均返回json格式。
2.2 主类定义 App.java
package com.couragesteak;
/*
 * @Author  : 有勇气的牛排
 * @FileName: APP.java
 * desc     : 启动
 * */
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
    /*
     * @ComponentScan 扫包范围:
     *   当前启动类同级包,或者子包
     * */
}
3 项目目录架构
com.couragesteak.controller:视图层,web和接口(业务逻辑)
 com.couragesteak.service:业务逻辑层
 com.couragesteak.dao:数据访问层
3.1 静态资源
springboot默认静态资源目录位于 classpath(resource)下,目录名需要符合如下规则
/static
 /public
 /resource
 /META-INF/resources
4.2 配置文件
4.2.1 yml类型(推荐)与 properties
位置:/resource/application.yml
cs:
  name: cs
  star: 999
位置:/resource/application.properties
#cs.name=couragesteak
#cs.star=9
ReadConfigService.java
/*
 * @Author  : 有勇气的牛排
 * @FileName: ReadConfigService.java
 * desc     : 读取配置
 * */
package com.couragesteak.service;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ReadConfigService {
    @Value("${cs.name}")
    private String name;
    @Value("${cs.star}")
    private String star;
    //
    @RequestMapping("/getProperties")
    public String getProperties() {
        return name + ":" + star;
    }
}

4.2.2 yaml中文件占位符
在SpringBoot的配置文件中,我们可以使用SpringBoot提供的的一些随机数,来制定找不到属性时的默认值
r a n d o m . v a l u e 、 {random.value}、 random.value、{random.int}、${random.long}
r a n d o m . i n t ( 10 ) 、 {random.int(10)}、 random.int(10)、{random.int[1024,65536]}
-${app.name:默认值}
4.2.3 多环境配置
application.yml
spring:
  profiles:
    active: dev
#    active: test
#    active: prd
application-dev.yml:开发环境
cs:
  name: "有勇气的牛排"
  star: 9
  age: ${radom.int(10)}
spring:
  http:
    encoding:
      force: true
      ### 模版引擎编码为UTF-8
      charset: UTF-8
  # 模板
  freemarker:
    allow-request-override: false
    cache: false
    check-template-location: true
    charset: UTF-8
    content-type: text/html; charset=utf-8
    expose-request-attributes: false
    expose-session-attributes: false
    expose-spring-macro-helpers: false
    ## 模版文件结尾.ftl
    suffix: .ftl
    ## 模版文件目录
    template-loader-path: classpath:/templates
  # 模板
  thymeleaf:
    #prefix:指定模板所在的目录
    prefix: classpath:/templates/
    #check-tempate-location: 检查模板路径是否存在
    check-template-location: true
    #cache: 是否缓存,开发模式下设置为false,避免改了模板还要重启服务器,线上设置为true,可以提高性能。
    cache: false
    suffix: .html
    encoding: UTF-8
    mode: HTML5
  datasource:
    url: jdbc:mysql://localhost:3306/spring_boot
    username: root
    password: root123456
    driver-class-name: com.mysql.jdbc.Driver
application-test.yml:测试环境
...
application-prd.yml:生产环境
...
4.2.4 核心配置
spring:
  profiles:
    active: dev
#    active: test
#    active: prd
server:
  # 端口号
  port: 8081
  servlet:
    # 设置spring-boot项目访问路径
    context-path: /
Springboot 默认的情况下整合tomcat容器,8080端口。
参考:
- 余胜军



















