Spring 的诞生是为了简化 java 程序的开发 , 而Spring Boot 的诞生是为了简化 Spring 程序开发.
Spring boot 翻译以下就是"脚手架" , 有了脚手架就可以快速的开发和使用 Spring .
springBoot框架的本质上就是通过组合注解的方式实现了诸多spring注解的组合,从而极大地简化了spring框架本身的繁琐配置,实现快速的集成和开发。
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 方法 , 成功后说明项目创建完毕.
[访问网站](Spring Initializr)
配置与 Idea 创建一致.
点击创建之后 , 会自动下载一个文件包 , 需要我们手动导入 Idea. 相当于一个备份文件 , 如果有时 Spring 网站无法访问 , 可以直接导入该包.
在 Idea 中 open 该 file 即可.
创建好项目之后以下几个文件可以删除
HELP.md 是一个自带的帮助文档 , 可以直接删除.
mvnw 和 mvnwcmd 同样是使用 Maven 命令操作打包 , 可以直接删除.
在启动类同级目录或子级目录中创建 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.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
解决方法:
Spring Boot 设计理念: 约定大于配置
既想高效 , 又想让用户简便.
Spring Boot 无需配置 Bean 的扫描路径 , 因为 Spring Boot 提供了一些默认的 Bean 扫描路径,如 @SpringBootApplication 注解默认会扫描当前包及其子包下的所有 Bean。如果需要自定义 Bean 扫描路径,也可以通过 @ComponentScan 注解来实现。总之,Spring Boot 的自动配置机制使得开发者可以更加专注于业务逻辑的实现,而不需要过多关注配置问题。
具体来说,SpringBoot框架在设计时,为了简化配置,采用了如下的约定:
总的来说,SpringBoot约定大于配置的设计思想,可以让开发人员更加专注于业务逻辑的实现,减少了配置的复杂性和细节,提高了开发效率和可维护性。