您的当前位置:首页正文

Spring Boot(二)输出HelloWord的两种方式

2024-12-01 来源:个人技术集锦

一.使用Maven方式:

1.创建maven工程(jar):

新建工程,并输入相应的项目名等

2.在pom.xml文件中导入依赖spring boot相关的依赖:

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

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

3.编写主程序启动SpringBoot应用:

(1)在src-main-java里面新建一个类,在该类中加入主函数:

package com.zf;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloWordMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloWordMainApplication.class,args);
    }
}

(2)@SpringBootApplication使用来标注一个主程序类,说明这是一个SpringBoot应用;

(3)SpringApplication.run(HelloWordMainApplication.class,args);作用是将Spring应用启动起来

4.编写相关的Controller、Service:

在主程序类的包下面新建一个类HelloController:

package com.zf.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

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

5.运行主程序测试:

直接运行HelloWordMainApplication主程序;然后在浏览器输入
既可访问(默认端口8080)

6.简化部署:

(1)在pom.xml文件中配置插件:

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

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

(2)在右侧栏的项目中,运行项目文件夹下面Lifecycle下面的package方法打包

(3)打包好的jar包默认放在target文件夹下面的maven-status里面第一个文件,将其复制到桌面等位置

(5)在浏览器输入http://localhost:8080/hello 既可成功访问

二.使用Spring Initializer快速创建SpringBoot应用:

1.新建项目选择Spring Initializer方式创建;

2.选择模块依赖的时候自己选择,比如选择web功能(需联网)

3.默认生成的SpringBoot项目:

(1)主程序已经生成好,我们只需要写自己逻辑;

static:保存所有的静态资源;js css images

templates:保存所有的模板页面,可以使用模板引擎

application.properties:SpringBoot应用的配置文件,可以修修改默认设置,比如端口等

三.Hello Word细解:

1.POM文件:

(1)父项目:

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

其父项目为:

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-dependencies</artifactId>
	<version>1.5.9.RELEASE</version>
	<relativePath>../../spring-boot-dependencies</relativePath>
</parent>

该父项目即为真正管理SpringBoot应用里面的所以依赖版本

Spring Boot的版本仲裁中心
没有在dependencies里面管理的依赖需要写版本号,其他默认不用写版本号

(2)导入的依赖:

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

spring-boot-starter-web:

spring-boot-starter为spring-boot场景启动器;导入了Web模块正常运行所依赖的组件

SpringBoot将所有的功能场景都抽取处理,做成一个个的starters(启动器),只需要在项目里面引入这个spring-boot-starter相关场景的所有依赖都会导入进来。需要什么功能,就导入什么启动器

2.主程序类,主入口类:

(1)@SpringBootApplication:

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

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

(2)@SpringBootConfiguration和@EnableAutoConfiguration:

@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

a. @SpringBootConfiguration:Spring Boot的配置类:
标注在某个类上,表示这是一个SpringBoot的配置类;
@Configuration:配置类上标注这个注解
配置类———配置文件;
配置类也是容器中的一个组件;@Component

b.@EnableAutoConfiguration: 开启自动配置功能;

@AutoConfigurationPackage
@Import({EnableAutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration

@AutoConfigurationPackage:自动配置包
@Import({Registrar.class});
Spring的底层注解@import,给容器导入一个组件;导入的组建由 Registrar.class来确定;
将主配置类(@SpringBootApplication标注的类)的所在包以及下面所有子包里面的所有组件主入到Spring容器中;

@Import({EnableAutoConfigurationImportSelector.class}):
给容器中导入组件,选择器;
将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器中;
会给容器导入许多自动配置类(xxxAutoConfiguration):就是给容器中容器中导入场景的所有组件,并且配置好组件

显示全文