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

ops/2025/1/23 23:28:42/

引言

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

Spring Boot 的启动方式

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

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

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

java">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 注解显式指定需要扫描的包。

java">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,简化了配置过程。

java">@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请求。

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

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

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

application.properties

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

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

application.yml

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

java"># application.yml
management:name: zhangsanage: 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 的模板路径和后缀:

java">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>
控制器类
java">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 注解

java">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.ppmy.cn/ops/152595.html

相关文章

kafka学习笔记2 —— 筑梦之路

KRaft模式 Kafka的KRaft模式是一种新的元数据管理方式&#xff0c;旨在去除对ZooKeeper的依赖&#xff0c;使Kafka成为一个完全自包含的系统。在Kafka的传统模式下&#xff0c;元数据管理依赖于ZooKeeper&#xff0c;这增加了部署和运维的复杂性。为了解决这个问题&#xff0c;…

设计模式:责任链模式——行为型模式

目录 主要角色 优点 缺点 适用场景 示例代码 普通写法&#xff1a; 策略模式&#xff1a; 总结对比 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为设计模式&#xff0c;它允许多个对象有机会处理请求&#xff0c;从而避免请求发送者与…

如何运用python爬虫获取大型资讯类网站文章,并同时导出pdf或word格式文本?

这里&#xff0c;我们以比较知名的商业新知网站https://www.shangyexinzhi.com/为例进行代码编写&#xff0c;下面进行代码应用思路。 第一部分&#xff0c;分析网站结构 首先&#xff0c;我们来分析&#xff0c;要使用Python技术分析一个网站的结构&#xff0c;通常可以通过…

如何构建一个简单的React应用?

如何构建一个简单的React应用&#xff1f; React 是由 Facebook 开发和维护的一个前端 JavaScript 库&#xff0c;广泛用于构建用户界面。React 采用组件化的设计思想&#xff0c;可以让开发者更加高效地构建动态的、交互性强的 Web 应用。本文将带你一步步构建一个简单的 Rea…

网络安全技术之网络安全

网络安全之物理安全策略 物理安全策略的目的是保护计算机系统、网络服务器、打印机等硬件实体和信链路免受自然灾害、人为破坏和搭线攻击&#xff1b;验证用户的身份和使用权限、防用户越权操作&#xff1b;确保计算机系统有一个良好的电磁兼容工作环境&#xff1b;建立完备的…

MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

【Qt 常用控件】显示类控件——QLabel

目录 1.QLabel 1.1 textFormat 文本类型 普通文本和富文本 Markdown格式 1.2 alignment 文本对齐方式 1.3 wordWrap 自动换行 1.4 indent 文本缩进 1.5 margin 边距 1.6 buddy&#xff0c;qlabel伙伴 1.7 pixmap图片 和 scaledContents自动填充 1.QLabel 功能&#x…

游戏引擎学习第80天

Blackboard&#xff1a;增强碰撞循环&#xff0c;循环遍历两种类型的 t 值 计划对现有的碰撞检测循环进行修改&#xff0c;以便实现一些新的功能。具体来说&#xff0c;是希望处理在游戏中定义可行走区域和地面的一些实体。尽管这是一个2D游戏&#xff0c;目标是构建一些更丰富…