当前位置: 首页 > article >正文

深入理解Spring Boot:启动方式、注解、配置文件与模板引擎

引言

        Spring Boot 是一个用于简化 Spring 应用初始搭建以及开发过程的框架。它通过约定大于配置的方式,大大减少了开发者需要编写的配置代码。本文将详细介绍 Spring Boot 的启动方式、核心注解的用法及含义、配置文件的书写格式以及模板引擎的使用方法。

Spring Boot 的启动方式

Spring Boot 应用有多种启动方式,以下是最常见的三种方式:

1.直接运行主类的 main 方法

        这是最常见的启动方式。只需在主类中添加 @SpringBootApplication 注解,并提供 main 方法即可。

package com.ffyc;

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

2.使用 @ComponentScan 注解显式指定扫描包

        如果你有多个程序需要启动,那么给每个添加单独的注解就显得很麻烦,可以使用 @ComponentScan 注解显式指定需要扫描的包。

package com.ffyc.service;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan("com.ffyc.service")
public class HelloService {
    public static void main(String[] args) {
        SpringApplication.run(HelloService.class, args);
    }
}

 3.使用@SpringBootApplication

  @SpringBootApplication是Spring Boot的核心注解,它集成了@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan,简化了配置过程。

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

关键注解解释

 @SpringBootApplication

结合@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan,简化配置。

@ComponentScan

指定扫描组件的包路径,自动识别@Component@Service@Repository等注解的类。

@RestController@RequestMapping

用于创建RESTful控制器,处理HTTP请求。

@RestController
@RequestMapping("/hello")
public class HelloController {
    @RequestMapping
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

 配置文件:application.properties 和 application.yml

        Spring Boot 支持两种配置文件格式:application.properties 和 application.yml

application.properties

application.properties 是传统的 Properties 文件格式,每行配置一个键值对。

# application.properties
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.suffix=.ftl

application.yml

application.yml 是 YAML 格式的配置文件,支持层次化配置,也是大多数常用的。

# application.yml
management:
  name: zhangsan
  age: 25

配置文件的优先级

Spring Boot 会按照以下顺序加载配置文件:

  1. application.properties

  2. application.yml

  3. 命令行参数

  4. 环境变量

  5. 外部配置文件(如 application-xxx.properties 或 application-xxx.yml

整合静态资源

        在 Spring Boot 中,静态资源默认放在 src/main/resources/static 目录下。Spring Boot 会自动将该目录下的资源映射到根路径 /

例如,如果你在 static 目录下有一个 index.html 文件,可以通过 http://localhost:8080/index.html 访问。

模板引擎:Freemarker

什么是模板引擎

        模板引擎是一种用于生成文本输出的工具,通常用于生成 HTML 页面。它允许你将代码和内容分离,从而使代码更清晰、更易于维护。

常用的模板引擎

  • Thymeleaf: 一个现代化的模板引擎,支持 HTML5。

  • Freemarker: 一个强大的模板引擎,支持复杂的逻辑。

  • Velocity: 一个简单易用的模板引擎。

Freemarker 的配置与使用

配置 Freemarker

在 application.properties 中配置 Freemarker 的模板路径和后缀:

spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.suffix=.ftl
 创建 Freemarker 模板

在 src/main/resources/templates 目录下创建 freemarkerIndex.ftl 文件:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Freemarker Index</title>
</head>
<body>
${message}
</body>
</html>
控制器类
package com.ffyc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller
public class FreemarkerIndexController {

    @RequestMapping("/freemarkerIndex")
    public String freemarkerIndex(Map<String, String> result) {
        result.put("message", "Hello, Freemarker!");
        return "freemarkerIndex";
    }
}

配合 @Value 注解进行页面渲染

在服务类中使用 @Value 注解

package com.ffyc.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 MemberService {

    @Value("${management.name}")
    private String name;

    @Value("${management.age}")
    private String age;

    @RequestMapping("/management")
    public String management() {
        return name + "--" + age;
    }
}

在 Freemarker 模板中使用变量

注意页面现在只需要这种写法就可以,${message}

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Freemarker Index</title>
</head>
<body>
${message}
</body>
</html>

总结

        介绍了 Spring Boot 的启动方式、核心注解的用法及含义、配置文件的书写格式以及模板引擎 Freemarker 的使用方法。通过这些内容,你应该能够更好地理解和应用 Spring Boot 进行开发。希望这篇博客能帮助你更好地理解 Spring Boot 的各种概念和用法。如果你有任何问题或建议,欢迎在评论区留言!


http://www.kler.cn/a/515900.html

相关文章:

  • 编程题-两数相加(中等)
  • 【玩转全栈】----Django制作部门管理页面
  • 【优选算法】5----有效三角形个数
  • Vscode配置continue运行ollama部署的Qwen2.5
  • 深入剖析 Java 的本地方法接口(JNI)
  • ui文件转py程序的工具
  • 深度理解递归(树的深度优先遍历、费波那契数列)c++
  • Effective C++ 规则43:学习处理模板化基类内的名称
  • linux+docker+nacos+mysql部署
  • 认识Django项目模版文件——Django学习日志(二)
  • Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
  • 【C语言】编译链接
  • 软考信安26~大数据安全需求分析与安全保护工程
  • 【C++笔记】哈希表底层实现的深度剖析
  • 车间设备数据采集解决方案
  • 智能体的核心技能之插件,插件详解和实例 ,扣子免费系列教程(11)
  • Elixir语言的Web开发
  • 知识产权API:助力金融业投资决策等场景提效!
  • 从理论到实践:Django 业务日志配置与优化指南
  • Facebook新品广告ROI一周速成攻略
  • 2.体验vue
  • 【若依】添加定时任务
  • ansible自动化运维实战--复制模块和用户模块(3)
  • 【0x06】HCI_Authentication_Complete事件详解
  • Solr与Elasticsearch 的对比与选型
  • Unity中关于实现 管道水流+瀑布流动+大肠蠕动效果笔记