Spring Boot实践(二)构建Spring Boot应用

Spring Boot项目结构

官方建议主程序Application类放在最顶层package中,@SpringBootApplication注解往往放在主类,它会自动扫描所在包之下的所有类,如果放在其他package中可能会发生找不到bean的异常

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

@SpringBootApplication注解使用如下所示

package com.example.myapplication;

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

@SpringBootApplication
public class Application {

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

}

配置类

  • Spring Boot支持基于Java的配置类,定义配置类需要对类@Configuration注解。定义配置类时不需要把所有配置都放在一个类中,@Import会导入额外的配置类。
  • 如果需要导入XML配置,可以在@Configuration类中通过@ImportResource注释来加载XML配置文件
  • Spring Boot自动配置可以根据添加的jar依赖项自动配置Spring应用程序,可以通过@EnableAutoConfiguration或者@SpringBootApplication来选择自动配置;如果不需要自动配置可以选择exclude排除
  • @SpringBootApplication注解有三个功能,配置、自动配置和组件扫描,也可以启用三个单独的注解来配置
    • @EnableAutoConfiguration 开启自动配置
    • @ComponentScan:在类所在的包中启动扫描
    • @Configuration:允许在上下文中注册额外的bean或导入其他配置类
package com.example.myapplication;

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

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {

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

}
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 Beans和依赖注入

使用@ComponentScan可以扫描发现bean,Spring Boot会将@Component,@Service,@Repository,@Controller等注解类自动注册为Spring Bean

package com.example.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DatabaseAccountService implements AccountService {

    private final RiskAssessor riskAssessor;

    @Autowired
    public DatabaseAccountService(RiskAssessor riskAssessor) {
        this.riskAssessor = riskAssessor;
    }

    // ...

}

运行Spring Boot程序

  • 通过IDE运行
  • 通过java命令运行
java -jar target / myapplication-0.0.1-SNAPSHOT.jar
  • 通过Maven运行
mvn spring-boot:run
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,244评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,381评论 19 139
  • 入门 介绍 Spring Boot Spring Boot 使您可以轻松地创建独立的、生产级的基于 Spring ...
    Hsinwong阅读 17,080评论 2 89
  • 此篇翻译的是Spring Boot官方指南 Part III. 使用 Spring Boot (Using Spr...
    K天道酬勤阅读 6,931评论 0 21
  • 你和她一起旅行 我在空间看到你更新的旅行动态 沉默 沉默… 我忽然觉得我好罪恶 我不该掺在你们中间 对不起… 我至...
    初爱Z阅读 227评论 0 0

友情链接更多精彩内容