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 插件
下载成功之后 , 创建新项目时就会出现 Spring Initializr.
Tips: 为了更好的兼容 , 建议使用 jdk 1.8 , 默认创建项目的源地址.
参数设置中项目类型和 jdk 版本必须修改 , 其余按自己需求.
选择 Spring Boot 版本(3.xx的 jdk 版本必须大于17) , 以及添加项目依赖(无需考虑依赖版本号).
创建完毕之后 , 在启动类 DemoApplication 中 , 运行 main 方法 , 成功后说明项目创建完毕.
3.2 网页版创建
[访问网站](Spring Initializr)
配置与 Idea 创建一致.
点击创建之后 , 会自动下载一个文件包 , 需要我们手动导入 Idea. 相当于一个备份文件 , 如果有时 Spring 网站无法访问 , 可以直接导入该包.
在 Idea 中 open 该 file 即可.
3.3 项目构成
1) 删除无关文件
创建好项目之后以下几个文件可以删除
- .mvn 中的文件需要使用 maven 命令操作 , 而 Idea 右侧自带可视化的 Maven 窗口 , 因此可以删除.
-
HELP.md 是一个自带的帮助文档 , 可以直接删除.
-
mvnw 和 mvnwcmd 同样是使用 Maven 命令操作打包 , 可以直接删除.
2) SpringBoot 目录说明
3) 运行项目输出Helloworld
在启动类同级目录或子级目录中创建 testController 类
设置 @Controller 修饰类 , 将该类加载到 Spring 容器中
@RequestMaping 注册一个路由 , 相当于 Servlet 中的 @WebServlert(“/url”)
@Controller//当前类加载到 spring 容器中
public class testController {
//注册一个路由
@RequestMapping("/sayHi") // = @WebServlet("/url")
public String sayHi(){
return "Hello world";
}
}
启动程序后抛 404 异常.
默认情况下 , 浏览器以为返回一个名字为 Hello world 的静态页面 , 而不是字符串.
因此加上 @ResponseBody 就告诉浏览器 , 当前类中的所有方法返回的都是非静态页面的数据.
@Controller//当前类加载到 spring 容器中
@ResponseBody
public class testController {
//注册一个路由
@RequestMapping("/sayHi") // = @WebServlet("/url")
public String sayHi(){
return "Hello world";
}
}
结果如下说明访问成功
Tips: 如果出现 @RequestMapping 和 @ResponseBody 报错 , 说明没有导入 web 依赖.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
解决方法:
- Maven仓库中拉取依赖
- 安装插件 , 手动导入.
4. Spring Boot 设计理念
Spring Boot 设计理念: 约定大于配置
既想高效 , 又想让用户简便.
Spring Boot 无需配置 Bean 的扫描路径 , 因为 Spring Boot 提供了一些默认的 Bean 扫描路径,如 @SpringBootApplication 注解默认会扫描当前包及其子包下的所有 Bean。如果需要自定义 Bean 扫描路径,也可以通过 @ComponentScan 注解来实现。总之,Spring Boot 的自动配置机制使得开发者可以更加专注于业务逻辑的实现,而不需要过多关注配置问题。
具体来说,SpringBoot框架在设计时,为了简化配置,采用了如下的约定:
- 默认配置:SpringBoot框架会根据应用程序的类型和依赖库的配置,自动配置一些默认的参数和行为,如默认端口号、默认数据库连接池、默认日志等。
- 自动配置:SpringBoot框架会根据应用程序的类路径和依赖库的配置,自动配置一些常见的组件和功能,如Web组件、数据访问组件、安全组件等。
- 约定优于配置:SpringBoot框架在设计时,采用了一些约定,如默认的目录结构、默认的命名规则等,使得开发人员可以不用进行过多的配置,就能快速搭建一个可运行的应用程序。
总的来说,SpringBoot约定大于配置的设计思想,可以让开发人员更加专注于业务逻辑的实现,减少了配置的复杂性和细节,提高了开发效率和可维护性。