SpringBoot(一)—— 项目构建及快速入门

在介绍SpringBoot之前,我们首先回忆一下我们在使用SSM来搭建一个项目的步骤,首先我们肯定需要创建一个Maven项目,然后我们需要引入Spring相关的依赖,然后我们还需要引入MyBatis的相关依赖,还需要配置相关的配置文件,另外我们还需引入Spring MVC的依赖,也是需要配置相关的配置文件,最后我们还要给我们的项目配置Tomcat,至此我们才算初步完成了一个项目的搭建。


看完上面的步骤是不是非常的麻烦,并且其中的依赖太多了, 且存在版本问题,那么使用SpringBoot的好处呢?SpringBoot的设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。总之SpringBoot的初衷就是为了简化spring的配置,使得开发中集成新功能时更快,简化或减少相关的配置。




这里我们构建SpringBoot项目,就使用最基础的方式,首先我们先构建一个基础的Maven项目,如下:
在这里插入图片描述
然后我们输入项目的一些信息,选择项目路径等,就可以完成了。


接下来其实非常的简单,我们就可以按照Spring Boot 上的介绍来做,其实就是我们首先需要Spring Boot的父级依赖,如下:
在这里插入图片描述

上图中,我们还指定了项目的编码及jdk的版本号,我们还可以用下面一种方式,也可以进行配置。
在这里插入图片描述


其实这样我们的SpringBoot项目已经初步完成了,是不是超简单,这里我们从SpringBoot官网copy下来的一个小示例,如下:
在这里插入图片描述

@EnableAutoConfiguration
@RestController
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
        return String.format("Hello %s!", name);
    }
}

然后我们右击启动该项目即可,访问上述路径localhost:8080/hello
在这里插入图片描述

其中@RestController、@GetMapping及@RequestParam,我们应该都是比较熟悉的了,在SpringMVC中都已经学习过了,这里我们主要来看一下@EnableAutoConfiguration,这个注解告诉Spring Boot需要根据添加的jar 依赖猜测你想如何配置Spring,比如我们上述添加了 spring-boot-starter-web 依赖,其中就包括Tomcat和Spring MVC,所以SpringBoot会根据在开发一个web应用的要求来对Spring进行设置。、
在这里插入图片描述


我们可以看到是通过@Import注解来引入了AutoConfigurationImportSelector类,有关@Import注解的作用在Srping中已经介绍过了
在这里插入图片描述


我们可以从中看到,通过AutoConfigurationImportSelector类,引入了META-INF/spring.factories,其中是SpringBoot中默认就加载的组件
在这里插入图片描述
在这里插入图片描述




这里我们再来改一改上述我们的测试方法,我们把刚刚访问到hello方法,单独写到DemoController类中去,放置到controller包下,这才是我们日常开发中标准的项目,如下:
在这里插入图片描述

@EnableAutoConfiguration
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
@RestController
public class DemoController {

    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
        return String.format("Hello %s!", name);
    }
}

然后我们在运行这个项目,然后依旧是访问localhost:8080/hello,发现报错了
在这里插入图片描述

这是为什么呢?其实我们回想一下Spring就可以明白了,我们没有进行扫描相应的类或包呀,我们的@EnableAutoConfiguration只是用于引入一些第三方的组件,但是它不具备扫描功能呀,所以这里我们需要使用@SpringBootApplication,如下:
在这里插入图片描述
在这里插入图片描述

这里我们需要注意的是,这个@SpringBootApplication注解扫描的是启动类的所有同级文件夹,所以我们千万不要将启动类放错了地方
在这里插入图片描述

这时,我们再启动项目,就可以进行访问了,如下:
在这里插入图片描述




修改端口号

这里我们再来看看如何修改Spring Boot的默认端口号:8080,其实也是非常的简单,我们只需要在配置文件中修改即可,如下:
在这里插入图片描述

server.port=8081

在这里插入图片描述


上述我们是使用.properties文件,进行修改的,我们还可以使用yml来进行修改,其实也是一样的,如下:
在这里插入图片描述

server:
  port: 8082

在这里插入图片描述

注意: 如何properties文件和yml文件同时存在的话,会优先以properties文件为主



添加项目名称

另外我们还可以在SpringBoot的访问路径上加上项目的名称,原来在Spring的项目中,我们是可以在Tomcat中进行配置的,这里我们就直接在配置文件中修改即可:

server.servlet.context-path=/demo

在这里插入图片描述
注意: 不要忽略了前面的 " / " 哦,另外yml也是类似的配置。




最后其实我们在构建一个SpringBoot的项目时,还可以更简单,我们直接可以使用IDEA帮助我们构建一个,如下:
在这里插入图片描述

在这里我们可以选择Spring Boot的版本,还可以添加一些我们需要的组件,如下:
在这里插入图片描述

完成后,其项目结构如下
在这里插入图片描述

我们可以进行查看其pom文件,其实和我们自己用Maven工程来搭建SpringBoot是差不多的

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.5.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.kimi</groupId>
	<artifactId>springboot2</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot2</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-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>
发布了286 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/newbie0107/article/details/105083383