Java框架Spring Boot经验总结——《我的Java打怪日记》

简介: Spring Boot可以说,是当前Java领域非常重要的一个框架,可以非常方便的进行Java Web应用的开发。官网提供的一套脚手架可以快速进行项目模板的创建,并引入依赖库。Spring Boot框架为广大的Java工程师带来了福音,Web API写起来更加的高效。

Spring Boot可以说,是当前Java领域非常重要的一个框架,可以非常方便的进行Java Web应用的开发。官网提供的一套脚手架可以快速进行项目模板的创建,并引入依赖库。项目初始模板可以访问网站:https://start.spring.io 即可,具体如下所示:
1.png
此界面提供了多种配置参数,可以宣称依赖管理的工具是Maven还是Gradle,可以宣传开发的语言是Java\Kotlin还是Groovy。另外,可以配置项目的打包方式,是Jar还是War,并选择JDK的版本,这里选择JDK 8。右边可以添加合适的依赖库,这里添加Spring Web,MySQL和PostgreSQL的驱动库。参数确定后,单击【GENERATE】按钮生成项目模板代码包。
其次,可以将下载的项目模板代码包解压,并用IDEA打开项目,其中的pom.xml代码如下:

< ?xml version="1.0" encoding="UTF-8"?>
< project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    < modelVersion>4.0.0< /modelVersion>
    < parent>
        < groupId>org.springframework.boot< /groupId>
        < artifactId>spring-boot-starter-parent< /artifactId>
        < version>2.5.1< /version>
        < relativePath/> < !-- lookup parent from repository -->
    < /parent>
    < groupId>com.example< /groupId>
    < artifactId>demo< /artifactId>
    < version>0.0.1-SNAPSHOT< /version>
    < name>demo< /name>
    < description>Demo project for Spring Boot< /description>
    < properties>
        < java.version>1.8< /java.version>
    < /properties>
    < dependencies>
        < dependency>
            < groupId>org.springframework.boot< /groupId>
            < artifactId>spring-boot-starter-web< /artifactId>
        < /dependency>

        < dependency>
            < groupId>mysql< /groupId>
            < artifactId>mysql-connector-java< /artifactId>
            < scope>runtime< /scope>
        < /dependency>
        < dependency>
            < groupId>org.postgresql< /groupId>
            < artifactId>postgresql< /artifactId>
            < scope>runtime< /scope>
        < /dependency>
        < dependency>
            < groupId>org.springframework.boot< /groupId>
            < artifactId>spring-boot-starter-test< /artifactId>
            < scope>test< /scope>
        < /dependency>
    < /dependencies>
    < build>
        < plugins>
            < plugin>
                < groupId>org.springframework.boot< /groupId>
                < artifactId>spring-boot-maven-plugin< /artifactId>
            < /plugin>
        < /plugins>
    < /build>
< /project>

默认情况下,IDEA中的Maven仓库会指向官方的地址,这可能会导致有些Jar包下载的比较慢,或者说有时候会出现无法下载的情况。针对这种情况,建议是配置maven的本地仓库,并设置国内的镜像,比如华为的镜像或者阿里的镜像等。如果有些库还是没有,可以放在本地,并在pom.xml中进行引用。
在项目文件中,添加一个控制器文件,这个控制器controller包位于DemoApplication类的内部,这样SpringBoot可以自动进行类扫码,并加载,否则,可能需要单独进行配置,指定SpringBoot到哪里进行类扫描,不然会出现定义的controller api无法调用的情况。具体的项目结构如下图所示:
2.png
HomeController.java是一个典型的Java 后台代码,SpringBoot利用框架提供的注解,非常方便的进行Web服务的开发工作,大大简化了后台代码的开发难度,从而提高了开发效率。示例文件的代码如下:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class HomeController {
    @RequestMapping("/login")
    public String Login(@RequestParam("username") String username, @RequestParam("password") String password) {
        if ("admin".equals(username) && "12345".equals(password)){
            return "1";
        }else {
            return "0";
        }
    }
}

根据官方文档的说法,@RestController相当于@Controller和@ResponseBody的组合,返回JSON数据时,不需要在方法前加@ResponseBody,但用@RestController注解时,不能返回jsp,html页面。@RequestMapping代码请求时候的API路径映射,这个是唯一的,可以供前台AJAX进行调用。这里类上的@RequestMapping注解和方法上的@RequestMapping组合起来构成一个API的调用路径。@RequestParam("username") String username表示一个Request参数,参数名为username,类型是String,并赋值给变量username。这样前台调用的时候,参数名需要和后台参数名保持一致。
这样启动服务,只需要在浏览器中输入类似如下的网址即可:
http://localhost/api/login?username=admin&password=123

相关文章
|
5月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
5月前
|
存储 安全 Java
《数据之美》:Java集合框架全景解析
Java集合框架是数据管理的核心工具,涵盖List、Set、Map等体系,提供丰富接口与实现类,支持高效的数据操作与算法处理。
|
5月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
381 8
|
5月前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
163 7
|
6月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
770 3
|
6月前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
3566 58
|
6月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
727 117
|
6月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
2668 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
6月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
502 12
|
7月前
|
存储 缓存 安全
Java集合框架(三):Map体系与ConcurrentHashMap
本文深入解析Java中Map接口体系及其实现类,包括HashMap、ConcurrentHashMap等的工作原理与线程安全机制。内容涵盖哈希冲突解决、扩容策略、并发优化,以及不同Map实现的适用场景,助你掌握高并发编程核心技巧。