(二):Spring Boot入门

2019-02-26  本文已影响0人  覆水无言

Spring Boot入门

1: 介绍

spring boot是基于spring框架搭建起来的服务器应用框架,它嵌入Tomcat, Jetty或者Undertow等服务器,并且不需要传统的WAR文件进行部署。可以把它看成服务器总spring框架的一列整合,省去了我们很多配置等工作。可以帮助我们快速建立一个产品级别的企业级应用。

1.1:原有的spring开发

在原有的spring项目开发中,我们使用spring的组件建立工程后需要进行大量的项目配置,结合maven导入大量的jar包才能让我们的程序启动起来,大量的配置使程序员的工作配置大于开发,这给我们造成了很不好的体验,想要详细了解可以学习spring的开发,学习spring项目的开发并不会让我们重复造车,spring boot是基于spring的这样会使我们更好的理解spring boot。

1.2:现有的spring开发

从spring的全家桶时代,到现在的spring boot(JavaEE一站式解决方案)、spring cloud(分布式整体解决方案),给我们的开发提供了极大的便利,让我们精力都集中在开发上,避免了大量的配置。

1.3:优点

1.4:缺点

spring boot最大的缺点就是入门容易精通难,在后台服务庞大的工程中,虽然spring boot为为我们带来的便利,但同样深层次的服务器问题也难暴露出来给我们处理,这样就造成了我们需要非常精通spring boot并且了解真个服务器的框架才能更好的完成我们的工作。

1.5:大时代背景(微服务)

微服务的概念在2014年被提出,微服务可以理解为一组小型服务的集合,每一个小型服务都运行在自己的进程内,服务与服务之间通过HTTP进行轻量级通信,每个服务都只专注与自己的设计目标,这样让开发更简介,微服务整体对外进行服务,访问通过网关来分析访问的是那个服务来进行分发。spring boot就是微服务的一站式解决方案。

2:Spring Boot HelloWorld

2.1: 创建工程

熟悉maven的和IDE的可以直接在IDE中创建Spring Boot工程,还可以在start.spring.io网站上建立工程后导入IDE。本人用的idea.。
导入后的文件目录

2019-01-17 13-29-53屏幕截图.png

2.2:项目介绍

spring boot为我们提供了很多starter,这些starter是一些模块的依赖集合,我们不再需要一个一个jar的手动导入,而只需要导入spring提供的starter就可以将整个我们需要的模块依赖导入进来,
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <!--导入spring boot的parent,使用spring boot都需要导入这个,它确定了
        你引入的spring boot模块的版本信息等,它为我们解决了依赖冲突等问题。-->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tian.learn</groupId>
    <artifactId>SpringBoot-Learn</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBoot-Learn</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <!--我们是一个web工程,导入spring boot的web依赖模块-->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <!--导入spring boot的单元测试依赖模块-->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <!--引入springboot的maven插件-->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

程序的配置文件
在resource目录下application.properties文件是这个项目的配置文件,在spring boot中绝大多数配置是spring为我们自动配置的默认配置,但我们也可以在这个文件中对默认配置进行修改,例如启动项目的端口号等。现在这个文件什么内容都没有
程序的入口
程序的入口就是Java源代码目录的 xxxApplication.java文件中,xxx一般为你的项目名,

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*该注解标记了该类为spring boot的程序入口类,
*一个spring boot项目该注解只能存在在一个类里
*/
@SpringBootApplication
public class SpringBootLearnApplication {
    /**
    * main函数入口,这里将拉起我们的spring boot项目,里面只有一套语句。
    */
    public static void main(String[] args) {
        SpringApplication.run(SpringBootLearnApplication.class, args);
    }

}

2.3:开发第一HelloWorld

spring boot入门简单就在于它的开发简单,学习起来特别快,在Java源代码目录新建文件HelloWorld.java,创建helloWorld访问。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//注解标注这个类为RestControl,稍后会详细介绍
@RestController
public class HelloWorld {
    //注解标定访问的相对路径。
    @RequestMapping("/helloworld")
    public String hello(){
        return "hello world";
    }
}

2.4:运行

spring boot中默认集成了Tomcat的内容,所以这里我们不再需要发布我们的项目到Tomcat,直接运行即可,也可以将它打包成jar包,使用Java命令执行。
直接运行我们的程序入口main函数
如果没有配置项目就是localhost:8080:我们的相对路径是helloworld,所以浏览器的全路径就是
localhost:8080/helloworld, 查看结果。
使用maven的package命令打包jar
将项目打包成jar后,我们可以直接运行jar,命令:Java -jar 生成的包名

3:项目详解

@SpringBootApplication

spring boot应用标注在某个类上,说明这个类是springboot的主配置类,也是入口类,springboot就可以运行该类的main方法启动SpringBoot应用

//@SpringBootApplication的定义
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

4:Spring Boot配置

4.1 配置文件

spring boot默认全局配置文件有两种。配置文件放在src/main/resources或 类路径/config下

#配置启动的串口号
server.port=8888

4.2:YAML文件在spring boot中的使用

参考另一篇文章YMAL

上一篇下一篇

猜你喜欢

热点阅读