Spring Boot(2.1.6.RELEASE)代码结构规范

代码结构

  • 不建议使用“default”package
    当一个类不包含package声明时,它被认为是在“default package”中。应该避免使用使用“default package”。这导致使用Spring Boot applications@ComponentScan,@EntityScan或@SpringBootApplication注解时扫描所有的java class,包括jar包。

  • 应遵循Java推荐的包命名约定并使用反向域名(例如,com.example.project)。

Main Application Class

建议将Main Application Class放在其他类之上的根包中。使用@SpringBootApplication注解标注主类,它隐含地定义了扫描哪些包。。

TIPS:如果不想使用@SpringBootApplication,可使用@EnableAutoConfiguration + @ComponentScan注释替代。

package com.example.myapplication;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainApplication {

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

}

典型的代码结构布局

com
 +- example
     +- myapplication
         +- MainApplication.java
         |
         +- customer
         |   +- Customer.java
         |   +- CustomerController.java
         |   +- CustomerService.java
         |   +- CustomerRepository.java
         |
         +- order
             +- Order.java
             +- OrderController.java
             +- OrderService.java
             +- OrderRepository.java

使用配置类

Spring Boot支持基于Java类的配置。尽管可以使用 SpringApplication.xml类配置,但我们通常建议使用单个@Configuration类来设置。

  • 导入其他配置类
    不需要把所有的@Configuration配置都放在同一个类里。可使用@Impor导入额外的配置类。或者可以使用 @ComponentScan自动获取所有Spring组件,包括 @Configuration类。
  • 导入XML配置
    如果必须使用XML文件来进行配置,仍然可以使用一个@Configuration class 然后使用@ImportResource注释来加载XML配置文件。
  • 自动化配置类
    @EnableAutoConfiguration:spring boot注解,在开启某些功能的时候进行自动配置
  • 禁用特定的自动化配置类
    使用@EnableAutoConfiguration的exclude属性来禁用
    import org.springframework.boot.autoconfigure。*;
    import org.springframework.boot.autoconfigure.jdbc。*;
    import org.springframework.context.annotation。*;
    
    @Configuration 
    @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
     public  class MyConfiguration {
    }
    

依赖注入

可以自由地使用任何标准的Spring Framework技术来定义bean及其注入的依赖项。为简单起见,我们经常发现使用 @ComponentScan(@Component,@Service,@Repository,@Controller)(找到你的bean)和使用@Autowired(做构造函数注入)效果很好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值