【Spring Boot】SpringBoot学习笔记——初始SpringBoot

文章目录

  • 1. 初始SpringBoot
    • 1.1 springboot创建方式
    • 1.2 Spring Boot项目结构介绍
      • 1.2.1 目录结构
      • 1.2.2 启动类
      • 1.2.3 pom文件
    • 1.3 Spring Boot在Controller中常用注解


1. 初始SpringBoot

1.1 springboot创建方式

springboot本质上是一个maven工程,下面介绍三种创建方式:

  • 在线创建

    在线创建是springboot官方提供的一种创建方式,官网地址为https://start.spring.io/,打开如下:

【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第1张图片

在页面将信息填写完成后,单击GENERATE按钮生成模块并下载到本地,解压后使用IDEA打开该项目即可使用。

  • 通过maven创建

    使用Maven创建Spring Boot项目,以IDEA为开发工具,具体步骤如下:

    • 创建一个普通的Maven项目,如下所示:

      【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第2张图片

    • 输入组织名和模块名,如下所示:

      【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第3张图片

    • 创建完成后在pom.xml文件添加依赖。

    • 添加完成后,在java目录下创建一个名叫App的启动类。

    • 最后执行main方法就可以启动一个Spring Boot项目了。

  • 使用Spring Initializer快速创建

    上述两种方法比较繁琐,推荐使用Spring Initializer的方式快速构建SpringBoot项目。这种方式不仅可以生成完整的目录结构,还可以生成一个默认的主程序,从而节省时间。

    • 创建项目时选择Spring Initializer,如下:

      【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第4张图片

    • 输入项目基本信息:

      【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第5张图片

    • 选择需要添加的依赖:

      【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第6张图片

    • 选择项目创建路径:

      【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第7张图片

    • 至此,Spring Boot项目创建完成。

1.2 Spring Boot项目结构介绍

1.2.1 目录结构

【Spring Boot】SpringBoot学习笔记——初始SpringBoot_第8张图片

  • src/main/java:放置所有的Java源代码文件。
  • src\main\resources\static:用于存放静态资源,如图片、CSS、JavaScript等。
  • src\main\resources\templates:用于存放Web页面的模板文件,如Thymeleaf。
  • src\main\resources\application.properties:配置信息,如应用名、服务端口、数据库配置等,SpringBoot默认支持两种配置文件类型,即.properties和.yml。
  • src/test:单元测试目录,生成的ApplicationTests通过JUnit4实现,可以直接运行SpringBoot应用的测试。
  • target:放置编译后的.class文件、配置文件等。

1.2.2 启动类

SpringBoot的启动类的类名是根据项目名称生成的,它的作用是启动SpringBoot项目,是基于main方法运行的。

启动类中@SpringBootApplication注解:是一个组合注解,包含@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan三个注解,是项目启动注解。

  • @SpringBootConfiguration:是@Configuration注解的派生注解,跟@Configuration注解的功能一致,标注这个类是一个配置类,只不过@SpringBootConfiguration是springboot的注解,而@Configuration是spring的注解。
  • @Configuration:通过对Bean对象的操作替代spring中xml文件。
  • @EnableAutoConfiguration:Spring Boot自动配置(auto-configuration),尝试根据添加的jar依赖自动配置Spring应用。是@AutoConfigurationPackage和@Import(AutoConfigurationImportSelector.class)注解的结合。
  • @AutoConfigurationPackage:自动注入主类下所在包下所有加了注解的类(@Controller、@Service等),以及配置类(@Configuration)。
  • @Import:直接导入普通的类。
  • @ComponentScan:组件扫描,可自动发现和装配一些Bean。
  • @ConfigurationPropertiesScan:@ConfigurationPropertiesScan扫描配置属性。@EnableConfigurationProperties注解的作用是使@ConfigurationProperties注解的类生效。

注意:启动类在启动时会做注解扫描(@Controller、@Service、@Repository…),扫描位置为同包或者子包下的注解,所以启动类的位置应放于包的根下。

1.2.3 pom文件

  1. 继承:SpringBoot的父级依赖,只有继承如下依赖项目才是真正的SpringBoot项目:

        <parent>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-parentartifactId>
            <version>2.6.3version>
            <relativePath/> 
        parent>
    

    spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签。

  2. 依赖:使用Spring Initializer快速创建的Spring Boot项目默认添加了如下依赖:

        <dependencies>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
    
            <dependency>
                <groupId>org..bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <scope>testscope>
            dependency>
        dependencies>
    
    • spring-boot-starter-web:spring-boot-starter-web启动器支持全栈式Web开发,包括Tomcat和spring-webmvc等,引入该启动器便能获得Web服务相关场景的Jar包。
    • spring-boot-starter-test:引入这个启动器,就会把所有与测试相关场景的Jar包引入。

    Spring Boot提供了非常多的starters启动器。starters启动器包括了一系列可以集成到应用里的依赖包,可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。例如如果要使用Spring JPA访问数据库,只需要加入spring-boot-starter-data-jpa启动依赖就能使用了。

    starters包含了许多项目中需要的依赖,它们能快速持续地运行,都是一系列得到支持的管理传递性依赖。

    Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。

    第三方的启动器不能以spring-boot-开头命名,它们都是被Spring Boot官方保留。一般一个第三方的启动器应这样命名:Mybatis的mybatis-spring-boot-starter。

  3. 插件

    spring-boot-maven-plugin插件是将Spring Boot应用程序打包成jar包的插件:

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

    将所有应用启动运行所需要的Jar包都包含进来,从逻辑上讲具备了独立运行的条件。可以使用"mvn package"进行打包,然后使用"java-jar项目"命令就可以直接运行。

1.3 Spring Boot在Controller中常用注解

  1. @RestController

    @RestController注解包含了原来的@Controller和@ResponseBody注解。@ResponseBody注解是将返回的数据结构转换为JSON格式。

  2. @GetMapping

    @RequestMapping(method=RequestMethod.GET)的缩写,请求资源应该使用GET。

  3. @PostMapping

    @RequestMapping(method=RequestMethod.Post)的缩写,添加资源应该使用Post。

  4. @PutMapping

    @RequestMapping(method=RequestMethod.Put)的缩写,更新资源应该使用Put。

  5. @DeleteMapping

    @RequestMapping(method=RequestMethod.Delete)的缩写,删除资源应该使用Delete。

你可能感兴趣的:(spring,boot,intellij-idea,java)