美文网首页
SpringBoot学习总结之二 项目结构配置

SpringBoot学习总结之二 项目结构配置

作者: 大鹏的鹏 | 来源:发表于2019-09-28 20:50 被阅读0次

一.SpringBoot项目结构

路径

  • src/main/java 程序代码。
  • src/main/resources 资源。
  • src/test/java 测试代码。
  • src/test/resources 测试资源。

文件

  • build.gradle Gradle 构建说明文件。
  • application.properties 项目和 Spring Boot 配置文件。
  • xxxApplication.java 项目启动引导类(bootstrap class),也是 Spring 主配置类。
  • xxxApplicationTests.java 测试类骨架。
  • pom.xml 主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。

二.SpringBoot项目配置

1.application.properties
  • application.properties
  • application.yml

SpringBoot可以识别两种格式的配置文件,分别是yml文件与properties文件,可以将application.properties文件换成application.yml
application.properties默认放在:src/main/resource目录下,SpringBoot会自动加载
例如要配置访问的端口号:

server.port=xxxx #端口
2.POM 文件

继承

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

Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。

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

依赖

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

启动器依赖,当然也可以使用第三方启动器依赖
插件

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

spring-boot-maven-plugin 插件是将 springboot 的应用程序打包成 jar 包的插件。将所有应用启动运行所需要的 jar 包都包含进来,从逻辑上将具备了独立运行的条件。当运行"mvnpackage"进行打包后,使用"java -jar"命令就可以直接运行。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--parent spring boot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <!--包名等配置-->
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <!--jdk版本-->
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <!--依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--支持Spring web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
3.注解
  • 1、@SpringBootApplication
    是 SpringBoot 的启动类。此注解等同于@Configuration+@EnableAutoConfiguration+@ComponentScan 的组合。

  • 2、@SpringBootConfiguration
    @SpringBootConfiguration 注解是@Configuration 注解的派生注解,跟@Configuration注解的功能一致,标注这个类是一个配置类,只不过@SpringBootConfiguration 是 springboot的注解,而@Configuration 是 spring 的注解

  • 3、@Configuration
    通过对 bean 对象的操作替代 spring 中 xml 文件

  • 4、@EnableAutoConfiguration
    Spring Boot 自动配置(auto-configuration):尝试根据你添加的 jar 依赖自动配置你的Spring 应用。是@AutoConfigurationPackage 和@Import(AutoConfigurationImportSelector.class)注解的组合。

  • 5、@AutoConfigurationPackage
    @AutoConfigurationPackage 注解,自动注入主类下所在包下所有的加了注解的类(@Controller,@Service 等),以及配置类(@Configuration)

  • 6、@Import({AutoConfigurationImportSelector.class})
    直接导入普通的类
    导入实现了 ImportSelector 接口的类
    导入实现了 ImportBeanDefinitionRegistrar 接口的类

  • 7、@ComponentScan
    组件扫描,可自动发现和装配一些 Bean。

  • 8、@ConfigurationPropertiesScan
    @ConfigurationPropertiesScan 扫描配置属性。@EnableConfigurationProperties 注解的作
    用是使用 @ConfigurationProperties 注解的类生效。

相关文章

网友评论

      本文标题:SpringBoot学习总结之二 项目结构配置

      本文链接:https://www.haomeiwen.com/subject/oeotpctx.html