全网最详细的SpringBoot入门保姆级教程
SpringBoot
SpringBoot基本概念
约定优于配置
在此引用官方的一句话:
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.
官方的意思大概就是说:SpringBoot是所有基于Spring项目开发的起点,SpringBoot设计的目的就是为了让开发者尽可能快的运行Spring应用程序并尽可能减少Spring应用的配置文件。
约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计范式
本质上来讲,系统、类库或者框架都应该假定合理的默认值,而非要求提供不必要的配置。
例如:模型中有一个User类,那么数据库中就会有对应的数据表默认命名为User。只有在偏离这一约定的时候才会需要写有关这个名字的配置。
比如平时架构师搭建项目就是限制软件开发随便写代码,制定出一套规范,让开发人员按统一的要求进行开发编码测试之类的,这样就加强了开发效率与审查代码效率。所以说写代码的时候就需要按要求命名,这样统一规范的代码就有良好的可读性与维护性了。
约定优于配置的本质就是遵循约定,尽可能少用配置
Spring优点和缺点
优点
Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的 Enterprise Java Bean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和 面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能
缺点
Spring的组件代码是轻量级的,但它的配置却是重量级
。但是一开始,Spring需要使用XML配置,而且是很多XML配置。Spring2.5引入了基于注解的组件扫描,消除了大量针对应用程序自身组件的显式XML配置。Spring3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切 换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。
除此之外,项目的依赖管理也是一件耗时耗力的事情
。在环境搭建时,需要分析要导入哪些库的坐标, 而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题 就会严重阻碍项目的开发进度。
SSM整合:Spring、SpringMVC、Mybatis、Spring-Mybatis整合包、数据库驱动,引入依赖的数量繁多、容易存在版本冲突。
SpringBoot解决spring问题
SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在 配置与逻辑 业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期
起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的依赖坐标打包到一起,并提供一些默认的功能。
自动配置
springboot的自动配置,指的是springboot,会自动将一些配置类的bean注册进ioc容器,我们可以需要的地方使用@autowired或者@resource等注解来使用它。
“自动”的表现形式就是我们只需要引我们想用功能的包,相关的配置我们完全不用管,springboot会自 动注入这些配置bean,我们直接使用这些bean即可
springboot: 简单、快速、方便地搭建项目;对主流开发框架的无配置集成;极大提高了开发、部署效率
SpringBoot入门教程
需求:请求Controller中的方法,并将返回值响应到页面
创建SpringBoot项目
使用Spring Initializr方式构建Spring Boot项目
-
Project SDK”用于设置创建项目使用的JDK版本,项目中使用之前初始化设置好的JDK版本即可;在 “Choose Initializr Service URL(选择初始化服务地址)”下使用默认的初始化服务地址“start.spring.io” 进行Spring Boot项目创建(注意使用快速方式创建Spring Boot项目时,所在主机须在联网状态 下)
-
如果使用快速构建的Default方式创建SpringBoot项目,就必须联网使用,所谓的快速构建本质就是在开发工具执行各项参数后,由Spring提供的URL所对应的服务器生成,Idea讲服务器生成的SpringBoot项目下载到本地空间中
SpringBoot项目结构分析
依赖管理
<modelVersion>4.0.0</modelVersion>
<!--
所用的springBoot项目都会直接或者间接的继承spring-boot-starter-parent
1.指定项目的编码格式为UTF-8
2.指定JDK版本为1.8
3.对项目依赖的版本进行管理,当前项目再引入其他常用的依赖时就需要再指定版本号,避免版本冲突的问题
4.默认的资源过滤和插件管理
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yjl</groupId>
<artifactId>springboot_demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_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</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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>
启动类
/**
*
**SpringBoot的启动类通常放在二级包中,
* 比如:com.yjl.SpringBootDemo1Application*因为SpringBoot项目在做包扫描,
* 会扫描启动类所在的包及其子包下的所有内容
*/
@SpringBootApplication
public class SpringbootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemoApplication.class, args);
}
}
Controller
// 该注解为组合注解,等同于Spring中@Controller+@ResponseBody注解
@RestController
@RequestMapping("/hello")
public class DemoController {
@RequestMapping("/boot")
public String helloBoot() {
return "Hello Spring Boot";
}
}
运行项目
运行主程序启动类SpringbootDemoApplication,项目启动成功后,在控制台上会发现SpringBoot项目默认启动的端口号为8080,此时,可以在浏览器上访问"http://localhost:8080/demo/hello"
页面输出的内容是“hello Spring Boot”,至此,构建Spring Boot项目就完成了
转载自:https://juejin.cn/post/7039164020644904968