springboot1——第一个springboot程序

需要用到的软件:

  • jdk1.8
  • maven3.6.1
  • springboot:最新版
  • IDEA
    官方:提供了一个快速生产的网站,idea集成了这个网站

1.进入spring boot官网进行快速程序的初始化,配置一些基本信息
spring官网里的spring boot模块有一个快速生成spring boot项目的jar包
在这里插入图片描述
2.加入web这个依赖,springboot则主动帮你配置好web.xml,tomcat和dispatchservlet,然后生成一个zip文件
在这里插入图片描述
在这里插入图片描述
3.导入项目
![](https://img-blog.csdnimg.cn/20200302181020877.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ5MzM1NA==,si
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.主程序入口:
主程序自动生产的
@springBootApplication:标注一个主程序,说明这是一个springboot应用
在这里插入图片描述
5.编写一个业务逻辑的类

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloworldController {
     @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

6.进行单元测试
在这里插入图片描述
继续对于这个程序进行深究
6.1.首先是pom.xml部分:

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.5.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

此项目有一个父项目,
parent: 集成spring-boot-starter-parent的依赖管理,控制版本与打包等

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

spring-boot-starter:spring-boot场景启动器;
spring-boot-starter-web:用于实现HTTP接口(该依赖中包含了SpringMvc),帮我们导入了web模块正常运行所依赖的组件;官网对它的描述是:使用springMvc构建Web(包括RESTful)应用程序的入门者,使用tomcat作为默认嵌入式容器。
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器

<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>

spring-boot-starter-test用于编写单元测试的依赖包
6.2. 主程序类,入口类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*
@SpringBootApplication:标注这个类是一个spring boot应用
*/
@SpringBootApplication
public class FirstDemoApplication {

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

}

@SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;

进入SpringBootApplication,可以看到这个类有很多的注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

其中:
@SpringBootConfiguration: Spring Boot的配置类:标注在某个类上,表示这是一个Spring Boot的配置类;
  @Configuration: 配置类上来标注这个注解;
  
@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样自动配置才能生效;
  @AutoConfigurationPackage:自动配置包
    @Import(AutoConfigurationPackages.Registrar.class):
Spring的底层注解@Import,给容器中导入一个组件;
导入的组件由AutoConfigurationPackages.Registrar.class将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
  @Import(EnableAutoConfigurationImportSelector.class);给容器中导入组件?
   EnableAutoConfigurationImportSelector:导入哪些组件的选择器;
将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;

在这里插入图片描述
在这里插入图片描述

Properties properties=PropertiesLoaderUtils.loadProperties(resources);

所有的资源都加载到配置类中
在这里插入图片描述
7.用idea直接创建一个spring boot的项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了20 篇原创文章 · 获赞 3 · 访问量 1716

猜你喜欢

转载自blog.csdn.net/weixin_43493354/article/details/104616337