Spring Boot 简介

绿林寻猫
2021-12-08 / 0 评论 / 236 阅读 / 正在检测是否收录...

 

前言

Spring Team在现有Spring框架的基础上发布了一个创新的框架:Spring Boot。

Spring Boot的开发团队是:Pivotal

Spring Boot的主要作用是:简化开发,减少配置(简化配置和部署spring应用程序的过程)

Spring Boot框架提倡:一键部署、习惯优于配置

Spring Boot还是一个微框架,它与目前流行的微服务紧密联系,可以开发微应用。

1.Spring Boot主要特点

  • 创建独立的Spring应用程序
  • 嵌入的Tomcat,无需部署WAR文件
  • 简化Maven配置
  • 自动配置Spring
  • 提供生产就绪型功能,如指标,健康检查和外部配置
  • 绝对没有代码生成和对XML没有要求配置

 

2.新项目为什么需要Spring Boot

  • 简化基于Java的应用程序开发,单元测试和集成测试过程。
  • 通过提供一些默认值来减少开发,单元测试和集成测试时间。
  • 提高生产力。
  • 当使用默认值时,Spring Boot有自己的看法。如果不指定详细信息,它将使用其自己的默认配置。如果想要持久化,但是没有在POM文件中指定任何东西,那么Spring Boot会将Hibernate带有HSQLDB数据库的配置作为JPA提供者。
  • 为大型项目(例如嵌入式服务器,安全性,度量,健康检查,外部化配置)提供许多非常常见的非功能特性/解决方案。

 

3.pring Boot精要

  • 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
  • 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
  • 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
  • Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。

 

4.Spring Boot的核心与限制   

  • Spring Boot的核心还是Spring。
  • 未来的Spring项目不会有任何XML配置作为它的一部分,一切都将由项目Spring Boot处理。

 

5.环境搭建(IDEA)

 

IntelliJ IDEA 14.1已经支持Spring Boot。

5.1【File】-【New】-【Project】然后选择【Spring Initializr】

  注:如果有报错,重试几次,可能是网络问题引起。

5.2选择JDK,根据图进行操作:

注:这里可以选择用war包,即以后将war包复制到Tomcat下解压部署即可。

5.3在初始依赖的导入时勾选要导入的包,比如Web、MySQL等,可以只选择支持Web,其它的都在pom.xml中导入依赖。

注意:导入两个依赖,Spring Boot会自动找到与之相应的包,一并加载(整体打包依赖)。

 

接下来填写项目名及项目源代码保存路径,如下:

填好后点Finish,现在已经初始化了一个Spring Boot框架。

 

项目结构

注意:在这里要将java文件夹设置为:Sources Root;将test文件夹设置为:Test Sources Root

访问静态资源:

Spring Boot将静态资源放在了src/main/resources/static中。

如:放入一张图片,启动Spring Boot,通过浏览器打开看。

注:resources中的static和templates文件夹是受保护的,必须要有访问权限。

templates:存放模板页,如thymeleaf,freemarker……。

前后端分离:

通过前端技术去调用,不使用任何后台相关技术,如freemarker、velocity、jsp等。

注:前后端分离一般在并发量比较高的情况下使用。

大型项目(互联网)前端调用全部是由前端团队去开发,后台只需要写好接口就可以了,告诉前端如何调用参数即可。

前端:前端设计,前端开发+PHP(调用后端接口,获取数据绑定)

后端:后端开发

 

pom.xml Maven构建说明文件。

WaterApplication 一个带有main方法的类,用于启动应用程序(关键)。

WaterApplicationTests 一个空的Junit测试类。

application.properties 一个空的properties文件,可以根据需要添加配置属性。

 

Spring Boot依赖

使用Spring Initializr创建Spring Boot项目,pom.xm中自带依赖包。

同时Spring Boot会自动找到与之相应的包,一并加载(整体打包依赖)。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<!--Spring Boot的父依赖,下面的依赖都继承该依赖。(可省略version版本)-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>
<!--spring-boot-starter-web包含:Spring-WebMVC、Spring-Web、Jackson、validation、Tomcat、Starter等内容-->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
</dependency>

<!--连接MySQL数据库,导入C3P0依赖-->
<dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
</dependency>
</dependencies>

<!--打包。executable jars 又称 fat jars,是可以直接在生产环境中运行的,包含所有编译生成的class文件以及依赖包。
注意,Spring Boot的这种打包方式需要使用Spring Boot提供的 spring-boot-maven-plugin 。-->
<build>
    <plugins>
	    <plugin>
	         <groupId>org.springframework.boot</groupId>
	         <artifactId>spring-boot-maven-plugin</artifactId>
	    </plugin>
    </plugins>
</build>

 

创建项目包

(1)在创建Spring Boot项目时,会默认创建包和类,比如:

目录名

说明

Templates

模板文件(Freemarker、template、thymeleaf等 ),受保护的,必须要有权限才能访问(需认证通过)。

Static

静态资源文件(图片、JS、css等),受保护的,必须要有权限才能访问(需认证通过)。

Webapp

普通前端页面文件,不受保护,Spring Boot中不推荐JSP,所在webapp中放JSP已过时。

注:Mvnw及mvnw.cmd文件没啥用,可以删除。(Eclipse)

(2)打开Demo1Application.java文件查看源代码:

@SpringBootApplication

public class Demo1Application {

public static void main(String[] args) {

SpringApplication.run(Demo1Application.class, args);

}

}

启动

Spring Boot内置集成了Tomcat,所以无需启动Tomcat即可执行Demo1Application.java中的main方法。

空启动后控制面板会出现如下图片:

出现该界面,使用浏览器访问http://127.0.0.1:8080出现无法访问,请删除pom.xml 中Tomcat作用域代码:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>

删除后重新启动,并访问http://127.0.0.1:8080

​​​​​​​测试

在com.zking.demo1中创建包:controller包,并创建TestController.java

// @RestController是Controller和ResponseBody合并的,用这个,下面的@ResponseBody可省略,新版本中出现的

@Controller

public class TestController{
    
    @ResponseBody    //做为ajax返回

    @RequestMapping(“/test”)

    public String say(){

        Return “Spring Boot 你大爷”;

    }

}

 

热部署

当我们修改文件和创建文件时,都需要重新启动项目。这样频繁的操作很浪费时间,配置热部署可以让项目自动加载变化的文件,省去的手动操作。

在 pom.xml 文件中添加如下配置:

<!-- 热部署 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <scope>true</scope>
</dependency>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 没有该配置,devtools 不生效 -->
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

多环境切换

application.properties 是 springboot 在运行中所需要的配置信息。

当我们在开发阶段,使用自己的机器开发,测试的时候需要用的测试服务器测试,上线时使用正式环境的服务器。

这三种环境需要的配置信息都不一样,当我们切换环境运行项目时,需要手动的修改多出配置信息,非常容易出错。

为了解决上述问题,springboot 提供多环境配置的机制,让开发者非常容易的根据需求而切换不同的配置环境。

在 src/main/resources 目录下创建三个配置文件:

application-dev.properties:用于开发环境

application-test.properties:用于测试环境

application-prod.properties:用于生产环境

我们可以在这个三个配置文件中设置不同的信息,application.properties 配置公共的信息。

在 application.properties 中配置:

spring.profiles.active=dev

注解介绍

下面列出 Spring Boot 开发中常用的注解:

@Configuration                 # 作用于类上,相当于一个 xml 配置文件
@Bean                          # 作用于方法上,相当于 xml 配置中的 <bean>
@SpringBootApplication         # Spring Boot的核心注解,是一个组合注解,用于启动类上
@EnableAutoConfiguration       # 启用自动配置,允许加载第三方 Jar 包的配置
@ComponentScan                 # 默认扫描 @SpringBootApplication 所在类的同级目录以及它的子目录
@PropertySource                # 加载 properties 文件
@Value                         # 将配置文件的属性注入到 Bean 中特定的成员变量
@EnableConfigurationProperties # 开启一个特性,让配置文件的属性可以注入到 Bean 中,与 @ConfigurationProperties 结合使用
@ConfigurationProperties       # 关联配置文件中的属性到 Bean 中
@Import                        # 加载指定 Class 文件,其生命周期被 Spring 管理
@ImportResource                # 加载 xml 文件

 

0

评论 (0)

取消