Spring Boot参考文档(7)建造你的代码

原文链接:http://itbus.tech/detail.html?id=8720

Spring Boot没有对代码结构有任何要求,但是,还是有一些有用的最佳实践。

使用 “default” 包

如果一个class不包含package的申明(也就是这个class不在任何包下),这个包就是在默认包下。任何使用默认包都是不被鼓励的,甚至是应该避免的。在Spring Boot下如果使用了@ComponentScan@EntityScan@SpringBootApplication,这种默认包可能会产生问题,因为所有包下的,所有class都会被扫描。

我们推荐你按照Java推荐的包命名约定,使用域名反转的方式来命名包(com.project.project)。

安置 main 类

一般来说,我们推荐吧main application放在你的包的根目录下。@EnableAutoConfiguration注解一般放在你的main class上,这个注解含蓄的指出了搜索包的根路径,来搜索某些类。例如,如果你写了一个JPA应用,@EnableAutoConfiguration修饰的类将会用来搜索所有被@Entity修饰的类。

如果把main class放在包的根路径中,那么在使用@ComponentScan时不需要指定basePackage。如果把main class放在包的根路径中,可以直接使用@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);
    }

}

译者注:可以使用@SpringBootApplication,这个等同于同时申明@Configuration@EnableAutoConfiguration@ComponentScan这三个注解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值