• 构建简单的SpringBoot项目


    一、在线引导创建:https://start.spring.io/

    File -> New -> Project...

    填写Group、Artifact、Package(默认的包路径)

     选择SpringBoot版本及希望依赖的组件

     选择项目本地路径

    pom.xml内容如下:

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.appst</groupId>
        <artifactId>demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>demo</name>
        <description>Demo project for Spring Boot</description>
    
        <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>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    最终生成的项目结构如下:

    DemoApplication.java

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

    二、手动创建

     

    1、引入依赖:

    (1) SpringBoot的父parent

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

    (2) SpringBoot的其他依赖组件

    <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>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    2、在resources下创建没有内容的application.properties文件。

    3、创建com.appst.demo.DemoApplication类:

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

    完成后“刷新下”

    三、SpringBoot项目结构说明

    使用 Spring Initializr 构建的SpringBoot工程的各目录,如下图所示:

    重要提示:SpringBoot 官方推荐我们使用轻量级的Jar File 格式来打包和部署工程,如果想部署War File的传统Web项目,则必须添加webapp目录,和进行相关初始化才能正常使用。

    启动类的位置

    提问:为什么启动类“约定”放在RootPackage呢?

    ① 如果将启动类放在顶层,配合注解@SpringBootApplication 实现默认向后扫描,例如:

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

    ② 这是为什么呢?@SpringBootApplication作为启动类的便携式入口注解,其主要由三大部件组成,其中@ComponentScan 这个注解就是本案的关键,根据SpringBoot的内置实现,Spring从这个注解所在的位置默认向后扫描,包括常见的Controller、Service、Entity都可以扫描到。

    @SpringBootConfiguration
    @EnableAutoConfiguration
    @ComponentScan
    public @interface SpringBootApplication {
    }

    ③ 将启动类放置在RootPackage,可以隐式完成组件扫描,不需要单独定义@ComponentScan(basePackages="com.xx.xx"),践行了SpringBoot 约定优于配置的核心理念。

    静态资源的存放位置

    springboot访问静态资源,有两个默认目录:

    • 一个是 classpath/static 目录 (src/main/resources)
    • 一个是 ServletContext 根目录下( src/main/webapp,一般是web应用 )

    webapp我们是比较熟悉的,这里就不再详述。主要将resources目录。

    1、对哪些目录进行映射

    classpath:/META-INF/resources/ 
    classpath:/resources/
    classpath:/static/  一般用于存放静态资源(css,js,image等)
    classpath:/public/  一般用于存放页面
    /:当前项目的根路径

    即在这五个目录下放静态资源(比如:a.js等),可以直接访问(http://localhost:8080/a.js),类似于以前web项目的webapp下;放到其他目录下无法被访问。

    2、为什么是那几个目录?

    WebMvcAutoConfiguration类自动为我们注册。

    3、 同个文件的加载顺序,默认按如下顺序查找

    classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

    4、resources可能的其他目录

    /src/main/resources/templates/ 用于存放页面,一般是thyleleaf、FreeMaker、Velocity、JSP等 (注意,这个需要引入thymeleaf相关依赖)

    5、src/main/webapp/

    有的人习惯性新建一个跟java,resources同级的目录专门用于开发前端。不过需要注意的是,一般如果你是用jsp进行前端开发的话,是需要在SpringBoot中创建一个标准的webapp文件夹的。貌似jsp放在/templates下是无法正常识别。

    6、SpringBoot默认能识别的日志文件命名格式

    SpringBoot建议我们使用 -spring的文件名,因为这样的配置文件,SpringBoot能够为其支持新特性。
    例如在日志文件中,可以用<SpringProfile>来支持根据不同环境使用不同的日志。

    Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
    Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
    Log4j2:log4j2-spring.xml, log4j2.xml
    JDK (Java Util Logging):logging.properties

    默认的全局application.properties

    该文件是SpringBoot的配置文件,如果我们想要修改文件的搜索顺序,我们可以修改spring.resources.static-locations的默认值。

  • 相关阅读:
    奇偶校检只能检出奇数个误差数学证明
    散列函数之双重散列算法解决冲突问题
    散列函数之单散列算法解决冲突问题
    散列函数之简单散列函数算法
    费马因式分解算法优化及素数判定
    完全平方数的末两位数字类型的另一种证明
    贪婪算法硬币找零最优解问题证明2
    贪婪算法硬币找零最优解问题证明
    改进冒泡排序法
    DASH MP4 cenc 笔记
  • 原文地址:https://www.cnblogs.com/myitnews/p/14055870.html
Copyright © 2020-2023  润新知