初试Micronaut框架

文章目录

  • [1. 实战概述](#1. 实战概述)
  • [2. 实战步骤](#2. 实战步骤)
    • [2.1 创建Micronaut项目](#2.1 创建Micronaut项目)
    • [2.2 创建控欢迎制器](#2.2 创建控欢迎制器)
    • [2.3 创建欢迎页面](#2.3 创建欢迎页面)
    • [2.4 启动应用](#2.4 启动应用)
    • [2.5 访问欢迎页面](#2.5 访问欢迎页面)
  • [3. 实战总结](#3. 实战总结)
  • [4. Micronaut与Spring Boot对比](#4. Micronaut与Spring Boot对比)

1. 实战概述

  • 本次实战旨在构建一个基于Micronaut框架的动态Web应用。通过官方Launch工具初始化项目,集成Thymeleaf模板引擎,实现后端控制器接收路径参数,并利用ModelAndView将数据传递至前端视图,最终展示个性化的欢迎界面。

2. 实战步骤

2.1 创建Micronaut项目

  • 访问https://micronaut.io/launch/

  • 配置项目基本信息(添加两个特性:http-server-jdkviews-thymeleaf

  • 单击【build GENERATE PROJECT】按钮,选择下载项目的zip文件

  • 查看下载的项目压缩包

  • 解压缩项目到指定目录D:\MicronautProjects

  • 打开项目目录micronaut-welcome

  • 利用IntelliJ IDEA打开项目

2.2 创建控欢迎制器

  • net.huawei里创建controller子包

  • controller子包里创建WelcomeController

    java 复制代码
    package net.huawei.controller;
    
    import io.micronaut.http.annotation.Controller;
    import io.micronaut.http.annotation.Get;
    import io.micronaut.views.ModelAndView;
    import io.micronaut.views.View;
    
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * 功能:欢迎控制器
     * 作者:华卫
     * 日期:2026年06月23日
     */
    @Controller
    public class WelcomeController {
        /**
         * 处理/welcome/{name}请求
         * @param name 路径参数
         * @return ModelAndView 包含模型和视图
         */
        @Get("/welcome/{name}")
        @View("welcome")
        public ModelAndView<Map<String, Object>> welcome(String name) {
            // 1. 创建一个Map来存放数据
            Map<String, Object> model = new HashMap<>();
            // 2. 将name放入map,key为"name",这样前端才能通过${name}获取
            model.put("name", name);
            // 3. 返回ModelAndView,第一个参数是视图名,第二个是模型数据
            return new ModelAndView<>("welcome", model);
        }
    }

2.3 创建欢迎页面

  • resources/views里创建welcome.html文件

    html 复制代码
    <!DOCTYPE html>
    <html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>欢迎页面</title>
        <style>
            /* 全局重置与背景设置 */
            body {
                margin: 0;
                padding: 0;
                height: 100vh; /* 占满全屏高度 */
                display: flex; /* 使用 Flex 布局 */
                justify-content: center; /* 水平居中 */
                align-items: center; /* 垂直居中 */
                background-color: #f0f2f5; /* 浅灰色背景,护眼且高级 */
                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            }
    
            /* 核心卡片样式 */
            .welcome-card {
                background-color: antiquewhite; /* 卡片古董白 */
                padding: 40px 60px; /* 内部留白 */
                border-radius: 20px; /* 大圆角边框 */
                box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); /* 添加阴影增加立体感 */
                text-align: center;
                transition: transform 0.3s ease; /* 鼠标悬停动画过渡 */
            }
    
            /* 鼠标悬停时微微上浮 */
            .welcome-card:hover {
                transform: translateY(-5px);
            }
    
            /* 文字样式 */
            h1 {
                color: #333333;
                margin: 0;
                font-size: 2.5rem;
            }
    
            /* 名字的高亮样式 */
            .highlight-name {
                color: #007bff; /* 蓝色高亮 */
                font-weight: bold;
            }
        </style>
    </head>
    <body>
    
    <!-- 容器卡片 -->
    <div class="welcome-card">
        <h1>
            嗨,亲爱的[<span th:text="${name}" class="highlight-name">Guest</span>]
        </h1>
        <p style="color: #666; margin-top: 10px; font-size: 40px">欢迎来到 Micronaut 世界</p>
    </div>
    
    </body>
    </html>

2.4 启动应用

  • 运行Application入口类

2.5 访问欢迎页面

  • 访问http://localhost:8080/welcome/陈燕文

3. 实战总结

  • 本次实战成功实现了Micronaut与Thymeleaf的整合开发。通过构建控制器,掌握了如何利用@View注解和ModelAndView对象将后端数据无缝传递至前端视图,解决了动态数据渲染的核心问题。在页面美化方面,引入了现代化的CSS3样式,包括圆角边框、阴影悬浮效果及背景布局,显著提升了界面的美观度与交互体验。整个流程涵盖了从项目搭建、逻辑编写到视图渲染的完整闭环,验证了Micronaut框架在快速开发轻量级Web应用方面的高效性与便捷性,为后续构建更复杂的微服务界面奠定了坚实基础。

4. Micronaut与Spring Boot对比

  • Spring Boot 与 Micronaut 的核心区别在于底层架构。Spring Boot 采用运行时依赖注入(反射机制),生态极其成熟,适合开发复杂的企业级应用,但启动较慢且内存占用较高。而 Micronaut 专为云原生设计,采用编译时依赖注入,彻底消除了运行时反射开销,具备亚秒级启动和极低内存占用的优势,非常适合微服务、Serverless 及高密度容器化部署。简言之,追求丰富生态与快速上手选 Spring Boot,追求极致性能与云原生轻量级架构选 Micronaut。