Spring Boot入门及项目构建

1. Spring Boot 简介

Spring Boot 是由 Pivotal 团队提供的全新框架, 其设计目的是用来简化新Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而是开发人员不再需要定义样板化的配置。Spring Boot默认配置了很多框架的使用方式,就像Maven整合了所有的jar包,Spring Boot 整合了所有的框架。它的核心设计思想是:约定优于配置,Spring Boot 所有开发细节都是依据此思想进行实现的

Spring Boot 的优势:
● 使开发变得简单,提供了丰富的解决方案, 快速集成各种解决方案提升开发效率。
● 使配置变得简单,提供了丰富的Starters,集成主流开源产品往往只需要简单的配置即可。
● 使部署变得简单,其本身内嵌启动器,仅仅需要一个命令即可启动项目,结合 Jenkins、Docker 自动化运维非常容易实现。
● 使监控变得简单,自带监控组件,使用 Actuator 轻松监控服务各项状态.

2.构建项目

依赖环境: 1.8以上版本的jdk
构建工具: Ant、Maven 和 Gradle,在这里我们用Maven
开发工具: Eclipse、idea(推荐使用idea)

2.1使用 Spring 官方提供页面构建

  1. 访问 http://start.spring.io/
  2. 选择构建工具 Maven Project、Java、Spring Boot 版本 2.1.16、Spring Web依赖以及一些工程信息,如下
    在这里插入图片描述
  3. 点击 Generate-Ctrl+ 下载项目压缩包
  4. 解压后,使用idea导入项目,File > New > Model from Existing Source… > 选择解压后的文件夹 > OK,选择 Maven 一路 Next,OK done!
  5. 如果是使用 Eclipse, Import > Existing Maven Project > Next > 选择解压后的文件夹 > Finsh,OK done!

2.2 使用IDEA构建

  1. 选择 File > New > Project…
  2. 选择 Spring Initializr,Next 也会出现上面类似的配置界面,IDEA 帮我们做了集成。如果没有 Spring Initializr选项,可以进入 Settings,选择Plugins,输入 spring 搜索,找到 Spring Boot 勾选上,再重启就可以了。在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. pom 包介绍

pom.xml 文件主要描述了项目包的依赖和项目构建时的配置, 在默认的 pom.xml 包中分为四大模块。

  1. 第一部分为项目描述信息:
<groupId>com.aiweiyi</groupId><!--公司域名-->
<artifactId>demo</artifactId><!--项目名称-->					
<version>0.0.1-SNAPSHOT</version><!--项目版本号-->
<name>demo</name><!--项目名称-->
<description>Demo project for Spring Boot</description><!--项目描述-->
  1. 第二部分为项目的依赖配置信息:
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

● parent, 标签内配置Spring Boot父级版本spring-boot-starter-parent, Maven 支持项目的父子结构,引入父级后会默认继承父级的配置;
● dependencies, 标签内配置项目所需要的依赖包,Spring Boot 体系内的依赖组件不需要填写具体版本号,spring- bot-starter-parent维护了体系内所有依赖包的版本信息。
● 本项目的依赖除了我们自己勾选的spring-boot-starter-web外,还默认包括了spring-boot starter-test, spring-boot starter-test是Spring Boot提供项目测试的工具包,内置了多种测试工具,方便我们在项目中做单元测试、集成测试。

  1. 第三部分为构建时需要的公共变量:
<properties>
        <java.version>1.8</java.version>
</properties>

此处默认只指定了项目使用的JIDK 版本,我们通常还会指定使用的字符编码等。

  1. 第四部分为构建配置
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
</build>

使用Maven 构建Spring Boot 项目必须依赖于spring-boot-maven-plugin 组件,
sringboot-maven-plugin能够以Maven的方式为应用提供Spring Boot 的支持,即为Spring Boot应用提供了执行Maven 操作的可能。sringboot-maven-plugin 能够将Spring Boot应用打包为可执行的jar 或war文件,然后以简单的方式运行Spring Boot应用。

4. 代码编写

这里演示一下在页面上输出 Hello World!
在这里插入图片描述

public interface DemoService {
    public String hello();
}
@Service
public class DemoServiceImpl implements DemoService {

    @Override
    public String hello() {
        return "Hello World!";
    }
}
@RestController
public class HelloController {

    @Resource
    private DemoService demoService;

    @RequestMapping("/hello")
    public String hello(){
        String m = demoService.hello();
        return m;
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. Spring Boot 的核心

约定优于配置

约定优于配置(Convention Over Configuration),也称作按约定编程是一种软件设计范式。目的在于减少软件开发人员所需要做出的决定的数量,从而获得简单的好处,而又不失去其中的灵活性。开发人员仅仅需要规定应用中不符合约定的部分。
例如, 如果模型中有个名为 User 的类, 那么数据库中对应的表就会默认命名为user。只有在偏离这一约定时,例如将该表命名为“user_info”,才需要写有关这个名字的配置。

Starters 启动器

Starters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring Data JPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。
Spring Boot Starter基于约定优于配置的理念来设计,Spring Boot Starter中有两个核心组件:自动配置代码和提供自动配置模块及其它有用的依赖。也就意味着当我们项目中引入某个Starter,即拥有了此软件的默认使用能力,除非我们需要特定的配置,一般情况 下我仅需要少量的配置或者不配置即可使用组件对应的功能。
可以参考: starter

自动配置工作原理

@SpringBootApplication 注解启动类

@SpringBootApplication
public class DemoApplication {

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

}

这个@SpringBootApplication注解里面又包括三个注解: @SpringBootConfiguration: SpringBoot配置; @EnableAutoConfiguration: 自动配置;
@ComponentScan: 组件扫描。

@SpringBootConfiguration 注解里又包含 @Configuration 注解,使用@Configuration注解标注的类表示一个配置类,可以替代以前的xml配置文件配置Bean。该注解意味着我们在启动类中可以添加带有@Bean注解的方法,进行一些配置。

@ComponentScan注解表示扫描组件,以前在SSM中也使用过组件扫描,启用注解配置。启动类上间接包含该注解,表示会扫描启动类所在包及子包下的注解配置。

@EnableAutoConfiguration 注解从名字就可以看出,Spring Boot由该注解开启自动配置。它主要通过@Import 注解导入AutoConfigurationImportSelector 类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值