美文网首页
springboot 入门最佳实践

springboot 入门最佳实践

作者: 乌木山 | 来源:发表于2020-08-21 22:31 被阅读0次

    springboot的出现,使得spring接入门槛极大的降低,我们再也不需要去理解什么复杂的xml配置,就可以很容易的构建一个spring服务。
    一个重要的原因是,springboot为我们做了大量的默认配置行为。因此,我们需要去了解和遵循一些基本原则,来让整个项目更加规范。

    项目结构

    1、代码结构规范

    避免java类放置在default package下(也就是没有package),因为这种方式可能会导致某些注解扫描行为 去扫描所有的jar,极大降低效率。
    推荐的做法是设置一个业务的package,并将启动类放置到根package。这样springboot默认会扫描根package及其子包下边的相关bean。
    如下图所示,如果Application不在根包下,可能会导致上层包的相关数据不会被扫描到。

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

    2、服务启动类

    springboot的启动方式非常简单,在一个普通的java类加上@SpringBootApplication注解,然后执行以下方法,即可完成启动。

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

    @SpringBootApplication 注解说明

    通过启用@SpringBootApplication注解,我们事实上启用了以下三个注解:

    • @EnableAutoConfiguration: 启用 springboot 的auto-configuration 机制

    • @ComponentScan: 扫描项目中的bean

    • @Configuration: 为context中注入额外的自定义bean,或者导入其他的 configuration 类

    启动原理

    springboot相比传统的spring web程序,入门门槛进一步降低,这主要得益于以下两点:
    1、无需进行繁琐的xml配置,springboot默认配置了许多的@Configuration来代替原来的xml。
    2、springbootStarter,这是springboot中非常重要的一个概念。如何理解starter呢,个人认为starter就是一个智能化的@Configuration配置类。它会依据项目引入的jar包、用户的参数配置、个性化配置自动实例化所需的bean,从而让整个starter的功能很容易的就运行起来。

    后续篇幅我们将一步步来演示,如何构建自己的starter,让别人很容易的使用相关功能。
    关于starter的创建过程和原理,请继续阅读:springboot starter 原理解析及实践

    参考资料

    https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/html/using-spring-boot.html

    相关文章

      网友评论

          本文标题:springboot 入门最佳实践

          本文链接:https://www.haomeiwen.com/subject/gslyjktx.html