SpringBoot入门之工程搭建(IDEA版)
ccwgpt 2024-11-06 09:42 50 浏览 0 评论
Spring-Boot Spring的春天
在之前我们一直使用Spring、SpringMVC进行开发,的确,Spring让我们认识到了项目开发原来可以这么方便。但是大量的配置文件却是令人头痛的,即使我们想写一个简单的请求映射并在浏览器上发送Get请求测试,那么需要:1.在web.xml中配置DispatcherServlet; 2.在application.xml中配置注解扫描、注解驱动。可以看到:虽然Spring是轻量级的,但是Spring的配置却是重量级的。并且搭建每个Spring项目我们都需要考虑依赖版本是否冲突的问题...
So,SpringBoot将这一切都解决了。SpringBoot提供了一种固定的、约定优于配置风格的框架,让开发者能更快的创建基于Spring的应用程序和服务。
对应的SpringBoot整合Mybatis实现CRUD的项目和笔记请看我的Github仓库:教你优雅的入门Spring Boot框架
如果觉得不错就点击右上角star鼓励一下笔者吧(#^.^#)
SpringBoot有如下特性:
- 更高效的创建基于Spring的应用服务
- 无需XML配置,可以修改默认值来满足特定的需求
- 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全...
- Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
SpringBoot项目搭建
这里我选择使用IDEA来创建SpringBoot项目:
1.选择Spring Initializr,并选择本地的JDK版本
2.Next,指定Group和Artifact名称,并选择本机JDK版本
3.选择项目所需依赖
解释
devtools: SpringBoot提供的热部署插件,可以避免每次修改代码都要重新启动项目。。
lomback: 使用Lomback可以减少项目中很多重复代码的书写,比如getter/setter/toString等方法的书写(虽然这些可能我们都是用的快捷键生成的代码)。具体用法可以参考博文:lomback介绍
Thymeleaf: 语法的支持
注意: 以上依赖非必选,如果仅仅想尝试一下Spring Boot-HelloWorld,只需要选择其中的web依赖即可。
<br/>
SpringBoot起步
以上是新创建的Spring Boot项目。在SpringBoot中有一个启动器(引导类)的概念,我们首先看一下SpringbootApplication.java:
@SpringBootApplication public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }
如上,仅是一个简单的main方法,其中最核心的就是@SpringBootApplication注解,它是一下三个注解的总和:
- @Configuration: 用于定义一个配置类。
- @EnableAutoConfiguration: SpringBoot会自动根据你的jar包依赖来自动配置项目。
- @ComponentSacn: 告诉Spring哪个packages的用注解标识的类会被Spring自动扫描并且转入Bean容器。
通过以上三个注解你就应该了解到了SpringBoot的作用:自动化配置项目。之前我们要手动进行的XML配置在这里仅需要这一个注解就完成了。且SpringBoot项目不需要单独部署到Tomcat中才能启动,通过这个启动器,SpringBoot会自动构建一个web容器,并将项目部署到其中。
So,
Run SpringBootApplication
发现报错,说DataSource数据源的url地址没有配置。之前我们提到了SpringBoot的特性就是自动化配置,它会根据你的依赖文件来配置项目,我们再看一下我们的pom.xml:
其中最上层的<parent>节点约束了整个下面所有spring-boot依赖的版本,即这里使用了SpringBoot-2.0.5。然后关注<dependencies>节点下的前四个依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency>
Spring Boot应用启动器
spring-boot-starter: Spring Boot的核心启动器,包含了自动配置、日志和YAML。
spring-boot-starter-jdbc: 支持JDBC数据库。
spring-boot-starter-thymeleaf: 支持Thymeleaf模板引擎,包括与Spring的集成。
spring-boot-starter-web: 支持全栈式开发,包括Tomcat和Spring-WebMVC。
mybatis-spring-boot-starter: 整合spring-mybatis依赖。
前面我们强调的一点是Spring Boot能实现自动化配置,那么项目的依赖就决定了Spring Boot将如何自动配置项目,Spring Boot的启动器就决定了项目会以什么样的配置启动项目;如此,我们会明白这个报错是为什么了。
因为我们配置配置JDBC连接的数据库,所以报错,注释掉spring-boot-starter-jdbc和mybatis-spring-boot-starter依赖,再次启动SpringBootApplication:
启动成功。
测试
在src/main/java/cn/tycoding/springboot/下创建controller文件夹并创建LoginController.java类:
@RestController public class LoginController { @RequestMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { System.out.println("username:" + username + ", password:" + password); return null; } }
如上就完成了在SSM阶段一个最基本的SpringMVC Controller映射方法的书写,那么测试一下:
在浏览器上访问:
localhost:8080/login?username=tycoding&password=123
后端即可接收到username和password参数。
这时你会发现,SpringBoot内置的Web容器默认访问地址就是8080端口,如果想改变这个默认端口,修改src/main/resources/application.properties:
server.port=8088
重启SpringbootApplication,访问:localhost:8088/login?username=tycoding&password=123
读取配置文件信息
在src/main/resources/application.properties中添加配置:
url=http://www.tycoding.cn
在LoginController.java中添加映射方法:
@RestController public class LoginController { @Autowired private Environment environment; @RequestMapping("/blog") public String login(){ return environment.getProperty("url"); } }
Spring提供的Environment类用户读取配置文件中参数,访问:localhost:8088/blog即可得到。
<br/>
相关推荐
- 一个基于.Net Core遵循Clean Architecture原则开源架构
-
今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...
- AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%
-
写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...
- OneCode低代码平台的事件驱动设计:架构解析与实践
-
引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...
- 国内大厂AI插件评测:根据UI图生成Vue前端代码
-
在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...
- AI+低代码技术揭秘(二):核心架构
-
本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...
- GitDiagram用AI把代码库变成可视化架构图
-
这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...
- 30天自制操作系统:第六天:代码架构整理与中断处理
-
1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...
- AI写代码越帮越忙?2025年研究揭露惊人真相
-
近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...
- 一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具
-
一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...
- 5分钟掌握 c# 网络通讯架构及代码示例
-
以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...
- 从复杂到优雅:用建造者和责任链重塑代码架构
-
引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...
- 低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈
-
专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...
- 框架设计并不是简单粗暴地写代码,而是要先弄清逻辑
-
3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...
- 大佬用 Avalonia 框架开发的 C# 代码 IDE
-
AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...
- 轻量级框架Lagent 仅需20行代码即可构建自己的智能代理
-
站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)