头图

Spring Boot项目结构简介

听听那冷雨
基本项目结构参考如下截图,下面详细介绍各个文件和目录。

image.png

1. pom.xml

全称project object model(项目对象模型)Maven构建规范。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="[http://maven.apache.org/POM/4.0.0](http://maven.apache.org/POM/4.0.0)"
  xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance](http://www.w3.org/2001/XMLSchema-instance)"
  xsi:schemaLocation="[http://maven.apache.org/POM/4.0.0](http://maven.apache.org/POM/4.0.0) [http://maven.apache.org/xsd/maven-4.0.0.xsd](http://maven.apache.org/xsd/maven-4.0.0.xsd)"> 
  <modelVersion>4.0.0</modelVersion>

  <!--1.基本属性-->
  <groupId>sia</groupId>
  <artifactId>taco-cloud</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging> <!--所有云平台都能运行jar文件,但war并非如此-->
  <name>taco-cloud</name>
  <description>Taco Cloud Example</description> 

  <!--2.父POM,Spring属性-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version> <!--starter都会用这个版本来管理无需再指定-->
    <relativePath/> <!-- lookup parent from repository --> 
  </parent>

  <!--3.项目编码属性-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version>
  </properties> 

  <!--4.项目依赖-->
  <dependencies>
    <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> <!--无需再指定版本,会根据parent的version来管理-->
    </dependency>
    <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies> 

  <!--5.构建属性-->
  <!--该插件,1.提供了一个maven goal 2.确保依赖的库都包含在可执行JAR中 3.在JAR中生成一个manifest文件,将引导类(XXXApplication.java)声明为可执行JAR的主类-->
  <build>
    <plugins> 
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin>
    </plugins> 
  </build>
</project>
<!--注意Spring Boot starter依赖,它们本身并不包含库代码,而是传递行地拉取其他的库,好处是:1.声明数少了。2.不用自己找了。3.不用担心版本问题了-->

2. XXXApplication.java

是Stpring Boot主类,它会启动该项目。

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
 * @SpringBootApplication 该注解声明这是一个Spring Boot应用
 * 它实际上是三个注解的组合
 * @SpringBootConfiguration 将该类声明为配置类
 * @EnableAutoConfiguration 启用Spring Boot自动配置
 * @ComponentScan 启用组建扫描(扫描@Controller、@Service、@Conmponent等)
 */
@SpringBootApplication
public class TqrApplication {
   public static void main(String[] args) {
      SpringApplication.run(TqrApplication.class, args);  // 运行应用
   }
}

3. XXXApplicationTest.java

测试类模版

package com.example.demo;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class) // JUnit的注解,它提供一个测试运行其(runner)来指导JUnit如何运行测试
@SpringBootTest  // 注解的先后顺序无关
public class TqrApplicationTests {

   @Test // 注意是org.junit.Test
   public void contextLoads() {
      System.out.println("Hello world!");
   }

}

4. mvnw和mvnw.cmd

Maven包装器,借助这些脚本,即使机器上没有Maven,也可以构建项目。

5. application.properties

指定配置属性的地方,该文件起初为空。

6. static目录

存放为浏览器提供服务的静态内容(图片、样式表、JavaScript)。

7. templates

存放用来渲染内容到浏览器的模板文件(例如Tymeleaf模板)

阅读 880

1 声望
0 粉丝
0 条评论
1 声望
0 粉丝
文章目录
宣传栏