Springboot HelloWorld

一个功能:
浏览器发送hello请求,服务器接收请求并处理,响应hello World字符串。

1.创建一个maven工程;(jar)

2.导入依赖spring boot相关的依赖

首先它继承了一个父项然后是web模块的一个依赖

在这里插入图片描述

3.编写主程序;

@SpringBootApplication

来标注一个主程序类(MainApplication),
说明这是一个Spring Boot应用(Application

SpringApplication.run(MainApplication.class,args);

spring应用启动起来

@SpringBootApplication
public class HelloWordMainApplication {

    public static void main(String[] args) {

        SpringApplication.run(HelloWordMainApplication.class,args);


    }

4.编写Controller

能处理请求,加个@Controller注解。
能处理什么请求呢,加个@RequestMapping注解。

@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World!";
  }
}

5.主程序类里面,运行Main方法

不用整合服务器。

以前要把整个应用打包成war包,然后部署在tomcat服务器上。

6.简化部署,导入Maven插件

maven 插件 可以将应用打包成一个可执行的jar包。

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

    </build>

直接java -jar的命令进行执行

打包携带上了tomcat服务器。
在这里插入图片描述

7. Hello World 探究

1.POM文件 (导入了相关依赖)

1.父项目

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

他的父项目是
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.3.1.RELEASE</version>
  </parent>
  他来真正管理Spring Boot应用里面的所有依赖版本 

以后我们导入依赖默认是不需要声明版本号;
没有在dependencies里面管理的依赖自然需要声明版本号

2.导入的依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        没有声明版本号

    </dependencies>

spring-boot-starter-web:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件
在这里插入图片描述
Spring Boot 将所有的功能场景都抽取出来,做成一个个的starters (启动器)
只需要在项目里面引入starter,相关场景的所有依赖的组件都会导入进来。

3.主程序类

@SpringBootApplication
public class HelloWordMainApplication {

    public static void main(String[] args) {

        SpringApplication.run(HelloWordMainApplication.class,args);


    }

}

@SpringBootApplication:Spring Boot应用,标注在主程序类上
Spring Boot就应该运行这个主程序类的main方法,来启动SpringBoot应用

@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:Spring的配置类

配置类也是容器中的一个组件;@Component

@EnableAutoConfiguration:告诉Spring Boot,开启自动配置功能;
@AutoConfigurationPackage:自动配置包, 将主配置类(@SpringBootAppliacaiton标注的类)的所有包及所有子包里面的所有组件扫描到Spring容器。
@Import(AutoConfigurationPackages.Registrar.class)Spring的底层注解@Import,给容器中导入一个组件; 导入的组件有这个类AutoConfigurationPackages.Registrar.class
@Import(AutoConfigurationImportSelector.class)给容器导入一个组件AutoConfigurationImportSelector:导入哪些组件的选择器,将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器中。

会给容器中导入非常多的自动配置类(xxxAutoConfiguration);
就是给容器中导入这个场景需要的所有组件,并配置好这些组件;

在这里插入图片描述

有了自动配置类,免去了手动编写配置注入功能组件等的工作。

SpringFactoriesLoader.loadFactoryNames( EnableAutoConfiguration.class,getBeanClassLoader());

Spring Boot在启动的时候从类路径下的"META-INF/spring.factories"中获取EnableAutoConfiguration的指定值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;

以前我们需要自己配置的东西(视图解析器),自动配置类都帮我们;

在这里插入图片描述

将这些值作为自动配置类(XXAutoConfiguartion)导入到容器中

在这里插入图片描述

J2EE的整体整合方案和自动配置都在spring-boot-autoconfigure
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值