Spring Boot官方文档 - 代码结构


Spring Boot不强制要求任何代码结构,这里有一些最佳实践,希望能帮到你。

使用"default"包

如果一个类不在任何包里,则认为在"default"包里。一般不鼓励使用"default"包,应该避免使用。对于使用@ComponentScan,@EntityScan或@SpringBootApplication注释的Spring Boot应用程序,可能会导致特殊的问题,因为每个jar的每个类都将被读取。

我们建议使用Java命名规范,用反转域名(例如:com.example.project)。

放置主应用类

我们通常建议将主应用类放在其他类的根目录里。我们经常会把@EnableAutoConfiguration放在主类上,它默认定义作为其他项目的基础搜索包。例如,你在写JPA应用,@EnableAutoConfiguration注解类的包将会用于搜索@Entity项目。

使用根目录包还可使@ComponentScan注解不再需要指定basePackage属性。如果在根目录包里,你还可以使用@SpringBootApplication注解。

下面是一个典型的代码结构:

com
 +- example
     +- myproject
         +- Application.java
         |
         +- domain
         |   +- Customer.java
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java

Application.java将会声明main方法,以及基本的@Configuration。

package com.example.myproject;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {

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

}

原创文章,转载请注明出处:转载自小马过河 - Spring Boot官方文档 - 代码结构


马军伟
关于作者 马军伟
写的不错,支持一下

先给自己定个小目标,日更一新。