有勇气的牛排博客
☰

SpringBoot (一) 项目构建、配置读取、静态资源定义

有勇气的牛排 1164 Java 2023-02-24 22:35:00

知止自律打卡-微信小程序APP
一款微信自律打卡小程序,支持自定义打卡项目、习惯记录、项目日记、专注计时与数据统计。自律打卡、学习打卡、读书打卡、健身打卡、运动打卡、减肥打卡、戒色打卡、养生打卡、戒烟、戒酒、戒熬夜等多种场景。万能打卡模板自由创建。可自定义每日打卡目标,记录习惯连续天数,可视化追踪成长进度。
了解产品详情 →
微信搜索「知止自律打卡」
知止自律打卡微信小程序

<font face=" 楷体,华文行楷,隶书,黑体" color=red size=5>哈喽,大家好,我是有勇气的牛排(全网同名)🐮</font>

<font face=" 楷体,华文行楷,隶书,黑体" color=blue size=5>有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。</font>

@toc

前言

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>

image.png

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);
    }
}

image.png

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;
    }
}

image.png

4.2.2 yaml中文件占位符

在SpringBoot的配置文件中,我们可以使用SpringBoot提供的的一些随机数,来制定找不到属性时的默认值

${random.value}、${random.int}、${random.long}

${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端口。

参考:

标签:

×
×