Spring Boot学习笔记(1)——构建SpringBoot项目

本文详细介绍如何使用IDEA或Eclipse构建SpringBoot项目,包括配置Maven依赖、创建启动类、编写Controller并运行项目。深入解析SpringBoot底层原理,如pom文件与启动类的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构建spingboot项目

1、构建 Spring Boot 项目,事实上建立的就是一个 Maven 项目
2、使用idea/eclipse工具构建一个maven项目
3、修改maven项目的pom文件:
1)、在 pom.xml 中添加 Spring Boot 相关的父级依赖, spring-boot-starter-parent 是一个特殊的starter:

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.6.RELEASE</version>
</parent>

注意:这里要使用的版本是:2.0.6.RELEASE,现在官网上的版本是2.1.4.RELEASE,如果使用官网上的版本,则在启动类中不能使用**@SpringBootApplication**注解
2)、在pom文件中添加Web 项目相关的依赖:

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

3)、这一点是可选的,如果需要将springboot项目打成jar包运行,则需要添加下面的插件:

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

4、构建springboot的启动类:

package com.dss.springboot;
@SpringBootApplication
public class HelloMainApplication {

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

5、构建一个Controller类

package com.dss.springboot.controller;
@Controller
public class HelloController {

	@RequestMapping(value="/hello", method=RequestMethod.GET)
	@ResponseBody
	public String hello() {
		return "hello world...";
	}
}

6、启动springboot项目:
1)、直接运行HelloMainApplication类中的main方法,即可启动springboot项目,启动之后,可在 控制台 看到启动日志:
在这里插入图片描述
可以看到项目启动的端口是8080,因为springboot启动是通过内置的tomcat启动的,此时在浏览器访问:localhost:8080/hello ,即可访问成功
2)、通过maven package指令打包项目,再运行java -jar xxxxx.jar 也可以启动spingboot项目

SpingBoot项目底层原理简单分析

1、pom文件分析:

<!-- 
spring-boot-starter-parent: 是当前项目的父依赖
	spring-boot-starter-parent 项目继承了spring-boot-dependencies 项目
	spring-boot-dependencies 项目中主要定义了很多的组件版本,所以我们在引用对应的依赖时,不需要指定<version>
 -->
<!-- 使用springboot的版本:2.0.6.RELEASE -->
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.6.RELEASE</version>
</parent>

<!-- 
	spring-boot-starter-web 分为两部分:
		spring-boot-starter :他是springboot的场景启动器,它针对不同的场景定义了不同的场景启动器
		spring-boot-starter-web:就是springboot众多启动器中的web启动器,功能是构建web项目,通过这个启动器可以引入 tomcat、springmvc等等
			项目需要哪些场景启动器,只需要直接依赖对应的启动器就ok:例如:需要单元测试,则引入 spring-boot-start-test
 -->
<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
</dependencies>

2、启动类分析:

/**
 * @SpringBootApplication用于表示一个引导类,说明 当前是一个 springboot 项目
 * 		该注解主要由三个注解组成:
 * 			@SpringBootConfiguration (这个注解的组成如下:通过这个注解,表示将当前类添加到spring容器中,它是一个组件,并且它是sping的一个配置类)
 * 				 @Configuration 它属于spring底层的一个注解,用于定义配置类,等价于spring的xml配置文件
 * 					@Component 它用于将该注解表明的类添加到spring容器中,表示 是一个组件
 * 
 *			@EnableAutoConfiguration
 *				@AutoConfigurationPackage 将引导类所在包 及子包下面所有的组件添加 到spring 容器中
 *				@Import(AutoConfigurationImportSelector.class)
 *					1、将所有的组件 以 全类名 的方式放回,并且添加到 spring 容器中
 *					2、会向 spring 容器中导入非常多的 自动配置类 ,这些配置类都是spring 定义好的,省去我们手动编写 配置文件中的bean标签来注入组件
 *
 *			@ComponentScan
 *				被该注解标识的类会被 spring 容器进行管理
 * 
 * 		注意:spring项目在启动时,会以引导类所在的包为基准,将所有子包下面的组件扫描到spring容器中,所以,引导类要定义在package的最上层
 * @author asong
 *
 *
 */
@SpringBootApplication
public class HelloMainApplication {

	public static void main(String[] args) {
		SpringApplication.run(HelloMainApplication.class, args);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值