SpringBoot 创建和使用

1. 初识 SpringBoot

Spring 的诞生是为了简化 java 程序的开发 , 而Spring Boot 的诞生是为了简化 Spring 程序开发.

Spring boot 翻译以下就是"脚手架" , 有了脚手架就可以快速的开发和使用 Spring .


2. Spring Boot 优点

  • 快速的集成框架: 快速添加外部的 jar 包 , 秒级集成各种框架.
  • 内置 web 框架 , 无需配置 Tomcat 等 web 容器 , 直接运行和部署程序
  • 易于部署:Spring Boot可以打包成可执行的 jar 包或 war 包,方便部署到各种应用服务器上 ,不依赖任何外部容器
  • 抛弃繁琐的 XML , 使用注解和配置的方式进行开发.
  • 支持更多的监控指标 , 可直接观察到项目的运行情况.
  • 易于测试:Spring Boot提供了一些测试工具,可以方便地进行单元测试和集成测试。

springBoot框架的本质上就是通过组合注解的方式实现了诸多spring注解的组合,从而极大地简化了spring框架本身的繁琐配置,实现快速的集成和开发。


3. Spring Boot 项目创建

3.1 使用 Idea 创建

1.专业版无需任何插件直接创建 Spring Boot 项目

2.社区版需要安装插件

社区版的插件经过多次的迭代 , 已经成熟稳定和专业版相差无几 , 因此我们使用社区版+插件的模式.

Tips: 此插件只有在 2021.x 版本是免费的.

安装 Spring Boot Helper 插件

image-20230417191657938

下载成功之后 , 创建新项目时就会出现 Spring Initializr.

Tips: 为了更好的兼容 , 建议使用 jdk 1.8 , 默认创建项目的源地址.

image-20230417193533136

参数设置中项目类型jdk 版本必须修改 , 其余按自己需求.

image-20230417194956060

选择 Spring Boot 版本(3.xx的 jdk 版本必须大于17) , 以及添加项目依赖(无需考虑依赖版本号).

image-20230417195521219

创建完毕之后 , 在启动类 DemoApplication 中 , 运行 main 方法 , 成功后说明项目创建完毕.


3.2 网页版创建

[访问网站](Spring Initializr)

配置与 Idea 创建一致.

image-20230417220253752

点击创建之后 , 会自动下载一个文件包 , 需要我们手动导入 Idea. 相当于一个备份文件 , 如果有时 Spring 网站无法访问 , 可以直接导入该包.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOuZzvSU-1683703469610)(null)]

在 Idea 中 open 该 file 即可.

image-20230417221210623


3.3 项目构成

1) 删除无关文件

创建好项目之后以下几个文件可以删除

  • .mvn 中的文件需要使用 maven 命令操作 , 而 Idea 右侧自带可视化的 Maven 窗口 , 因此可以删除.

image-20230417222231750

  • HELP.md 是一个自带的帮助文档 , 可以直接删除.

  • mvnw 和 mvnwcmd 同样是使用 Maven 命令操作打包 , 可以直接删除.

image-20230417222253139

2) SpringBoot 目录说明

3) 运行项目输出Helloworld

在启动类同级目录或子级目录中创建 testController 类

image-20230418170432994

设置 @Controller 修饰类 , 将该类加载到 Spring 容器中

@RequestMaping 注册一个路由 , 相当于 Servlet 中的 @WebServlert(“/url”)

@Controller//当前类加载到 spring 容器中
public class testController {
    
    
    //注册一个路由
    @RequestMapping("/sayHi") // = @WebServlet("/url")
    public String sayHi(){
    
    
        return "Hello world";
    }
}

启动程序后抛 404 异常.

image-20230418171448366

默认情况下 , 浏览器以为返回一个名字为 Hello world 的静态页面 , 而不是字符串.

因此加上 @ResponseBody 就告诉浏览器 , 当前类中的所有方法返回的都是非静态页面的数据.

@Controller//当前类加载到 spring 容器中
@ResponseBody
public class testController {
    
    
    //注册一个路由
    @RequestMapping("/sayHi") // = @WebServlet("/url")
    public String sayHi(){
    
    
        return "Hello world";
    }
}

结果如下说明访问成功

image-20230418171323064

Tips: 如果出现 @RequestMapping 和 @ResponseBody 报错 , 说明没有导入 web 依赖.

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

解决方法:

  1. Maven仓库中拉取依赖
  2. 安装插件 , 手动导入.

4. Spring Boot 设计理念

Spring Boot 设计理念: 约定大于配置

既想高效 , 又想让用户简便.

Spring Boot 无需配置 Bean 的扫描路径 , 因为 Spring Boot 提供了一些默认的 Bean 扫描路径,如 @SpringBootApplication 注解默认会扫描当前包及其子包下的所有 Bean。如果需要自定义 Bean 扫描路径,也可以通过 @ComponentScan 注解来实现。总之,Spring Boot 的自动配置机制使得开发者可以更加专注于业务逻辑的实现,而不需要过多关注配置问题。

具体来说,SpringBoot框架在设计时,为了简化配置,采用了如下的约定:

  1. 默认配置:SpringBoot框架会根据应用程序的类型和依赖库的配置,自动配置一些默认的参数和行为,如默认端口号、默认数据库连接池、默认日志等。
  2. 自动配置:SpringBoot框架会根据应用程序的类路径和依赖库的配置,自动配置一些常见的组件和功能,如Web组件、数据访问组件、安全组件等。
  3. 约定优于配置:SpringBoot框架在设计时,采用了一些约定,如默认的目录结构、默认的命名规则等,使得开发人员可以不用进行过多的配置,就能快速搭建一个可运行的应用程序。

总的来说,SpringBoot约定大于配置的设计思想,可以让开发人员更加专注于业务逻辑的实现,减少了配置的复杂性和细节,提高了开发效率和可维护性。

猜你喜欢

转载自blog.csdn.net/liu_xuixui/article/details/130602002