运维开发网

实用课程初学者入门

运维开发网 https://www.qedev.com 2022-10-23 19:10 出处:网络
SpringBoot使我们更容易去创建基于Spring的独立和产品级的可以"即时运行"的应用和服务,下面这篇文章主要给大家介绍了关于SpringBoot实战教程之入门篇的相关资料,需要的朋友可以参考下

SpringBoot使我们更容易去创建基于Spring的独立和产品级的可以"即时运行"的应用和服务,下面这篇文章主要给大家介绍了关于SpringBoot实战教程之入门篇的相关资料,需要的朋友可以参考下


1. SpringBoot 简介

Spring Boot是Pivotal team提供的全新框架,其设计目的是简化Spring应用程序的初始构建和开发过程。该框架使用特定的方式进行配置,因此开发人员不再需要定义样板配置。Spring Boot可以基于Spring轻松创建一个独立运行的生产级应用。


2. SpringBoot 安装

安装SpringBoot的方法有很多。最简单的就是直接添加spring-boot-*之类的文件。jar添加到项目的类路径中,以便您可以运行和调试您的应用程序。如果是企业应用,建议使用build工具来管理项目依赖,比如Maven或者Gradle。对于直接添加类路径的方式,这里不再赘述。下面主要介绍基于build工具的安装说明。


2.1. 基于 Maven 的安装

Spring Boot与Apache Maven 3.2兼容。如果你还没有安装Maven,你可以按照maven.apache.org上的说明进行操作。

Spring Boot依赖于使用org.springframework.boot作为groupId。通常,您的POM文件将继承spring-boot-starter-parent项目,然后声明一个或多个启动器的依赖项。Spring Boot还提供了一个可选的Maven插件来生成可执行的Jar包。

典型的pom.xml文件:

lt;xml version="1.0" encoding="UTF-8"gt;lt;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"gt; lt;modelVersiongt;4.0.0lt;/modelVersiongt; lt;groupIdgt;com.examplelt;/groupIdgt; lt;artifactIdgt;myprojectlt;/artifactIdgt; lt;!-- 继承 Spring Boot 的默认值 --gt; lt;parentgt; lt;groupIdgt;org.springframework.bootlt;/groupIdgt; lt;artifactIdgt;spring-boot-starter-parentlt;/artifactIdgt; lt;versiongt;1.5.3.RELEASElt;/versiongt; lt;/parentgt; lt;!-- 为 Web 应用添加能用依赖 --gt; lt;dependenciesgt; lt;dependencygt; lt;groupIdgt;org.springframework.bootlt;/groupIdgt; lt;artifactIdgt;spring-boot-starter-weblt;/artifactIdgt; lt;/dependencygt; lt;/dependenciesgt; lt;!-- 打包成一个可执行 jar 包 --gt; lt;buildgt; lt;pluginsgt; lt;plugingt; lt;groupIdgt;org.springframework.bootlt;/groupIdgt; lt;artifactIdgt;spring-boot-maven-pluginlt;/artifactIdgt; lt;/plugingt; lt;/pluginsgt; lt;/buildgt;lt;/projectgt;

提示:

Spring-boot-starter-parent是使用Spring Boot的一种更好的方式,但它并不适合所有场景。有时,您可能需要继承不同的父Pom,或者您不喜欢这个默认配置。您也可以通过声明scope=import的依赖项来使用它:

lt;dependencyManagementgt; lt;dependenciesgt; lt;dependencygt; lt;!-- 从 Spring Boot 导入依赖管理 --gt; lt;groupIdgt;org.springframework.bootlt;/groupIdgt; lt;artifactIdgt;spring-boot-dependencieslt;/artifactIdgt; lt;versiongt;1.5.3.RELEASElt;/versiongt; lt;typegt;pomlt;/typegt; lt;scopegt;importlt;/scopegt; lt;/dependencygt; lt;/dependenciesgt;lt;/dependencyManagementgt;


2.2. 基于 Gradle 的安装

相比Maven庞大的XML配置,我更喜欢Gradle,它不仅简洁而且灵活得多。Spring Boot兼容Gradle(2.9或以上)和Gradle 3。如果你还没有安装Gradle,你可以按照www.gradle.org上的说明来安装它。

典型的build.gradle文件:

plugins { id 'org.springframework.boot' version '1.5.3.RELEASE' id 'java'}jar { baseName = 'myproject' version = '0.0.1-SNAPSHOT'}repositories { jcenter() maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }}dependencies { compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test")}


3. 创建 HelloWorld 应用

创建一个简单的Java类,如下所示:

import org.springframework.boot.*;import org.springframework.boot.autoconfigure.*;import org.springframework.stereotype.*;import org.springframework.web.bind.annotation.*;@RestController@EnableAutoConfigurationpublic class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); }}

示例类上的第一个注释@RestController是@Controller和@ResponseBody的组合,表示这是一个控制器,所有的响应数据都会序列化到响应体中并返回。方法上的@RequestMapping注释为请求处理提供路由信息。这些评论是斯普林的,不是Spring Boot的。

该类的第二个注释@EnableAutoConfiguration将告诉Spring Boot通过依赖的Jar包配置Spring项目。因为spring-boot-starter-web包含了Tomcat和spring MVC,所以会认为是web项目,做相应的Spring配置。

应用程序的最后一部分是一个main方法,它通过调用SpringApplication的run方法将应用程序委托给Spring Boot。SpringApplication将引导我们的应用程序启动自动配置的Spring和Tomcat Web服务。我们需要将Example.class作为参数传递给run方法,告诉SpringApplication它是主要的Spring组件。

运行main方法后,您可以使用浏览器打开地址localhost:8080,您将得到输出:

你好世界!


4. 代码结构

一般应用会用域名+项目名的倒置作为项目统一包名的前缀。如:com.qchery.funda在SpringBoot的项目中,推荐如下布局:

com
+-qchery
+-funda
+-application . Java
|
|+-entity
|+-customer . Java
|
+-Dao
|+-customer repository . Java
|
+-service
|+-customerservice . Java
|
+-web[]

其中,Application.java文件如下:

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@EnableAutoConfiguration@ComponentScanpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

一般来说,我们会将@EnableAutoConfiguration注释放在主类上,也就是上面结构中的Application.java。它隐式定义了一个包含一些搜索词的搜索包。例如,如果您正在编写一个JPA应用程序,带有@EnableAutoConfiguration注释的类将用于搜索带有@Entity的类。

而@ComponentScan将用于自动扫描相应的组件。因为Application.java是根包名,所以不需要声明basePackage来指定要扫描的包。默认情况下,它是根包名,即:com.qchery.funda


5. Configuration 类

SpringBoot支持基于Java的配置和XML文件配置。但是,建议使用基于Java的配置。如果某些XML配置已经存在于当前系统中,建议将其替换为基于Java的配置,效果相同。您可以搜索Enable*来查找相应的基于Java的配置。


5.1. 导入其它配置

在SpringBoot项目中,我们不需要将所有的配置放在一个类文件中。它的@Import注释可以帮助我们导入其他配置类。如果希望以XML形式导入配置,可以使用@ImportResource注释。此外,您还可以使用@ComponentScan注释来扫描所有带有@Configuration注释的类。


6. 自动化配置

将@EnableAutoConfiguration或@SpringBootApplication注释添加到带有@Configuration的类中时,SpringBoot会根据添加的依赖包自动完成项目配置。例如,如果您在类路径下添加了HSQLDB包,但是没有配置任何数据库属性,SpringBoot将自动配置一个内存中的数据库。只能向@EnableAutoConfiguration添加一个类,因此建议将其添加到主@Configuration类中。


6.1. 逐渐替换自动化配置

自动化不是侵入性的,您可以通过定制配置在任何地方替换它。例如,如果您添加自己的数据库配置,将返回默认的嵌入式数据库支持。如果要检查自动配置是否生效,可以在运行程序时添加ndash要查看的调试参数。


6.2. 禁止特定的自动化配置

当您发现自动配置不能如您所愿地工作时,您可以使用@EnableAutoConfiguration的exclude属性禁用它们。

import org.springframework.boot.autoconfigure.*;import org.springframework.boot.autoconfigure.jdbc.*;import org.springframework.context.annotation.*;@Configuration@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})public class MyConfiguration {}


7. 使用 @SpringBootApplication 注解

大多数情况下,@Configuration、@EnableAutoConfiguration和@ComponentScan批注一起使用。SpringBoot提供了更方便的选项@SpringBootApplication,相当于前三条评论。

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication // 等同于 @Configuration @EnableAutoConfiguration @ComponentScanpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

项目Github地址:https://github.com/qchery/funda


总结

关于SpringBoot实战教程初学者入门篇的这篇文章就说到这里。关于SpringBoot入门章节的更多信息

0

精彩评论

暂无评论...
验证码 换一张
取 消