springboot:进入大厂前需要领悟的宝典,你明白吗?

在前面的文章过Damon说过SSM是目前较为流行的开发模板,但其实在许多大公司的开发中,主流的Springboot才是主流。这些公司之所以选择使用springboot的原因,不单单是因为优点是对新手无需任何门槛,只要懂Maven会看文档就能亦步亦趋的开始一个新项目。

并且对于一些高手来说,改配置也是分分钟的事。虽然Spring Boot的auto configuration loading真的非常绕,但熟悉spring的人还是蛮容易找到问题所在的。另外fat jar的打包方式让部署真的变得很美丽。devtools更是让臭名昭著的改代码重启成为了半个历史。所以今天Damon就跟大家说说springboot

首先我们知道Boot在计算机中是启动的意思,Spring Boot在spring中的图标刚好就是个启动开关,意味着它提供的是spring的一种一站式快速使用解决方案。

而Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人能更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生产效率。为Spring生态系统提供了一种固定的、约定优于配置风格的框架。

Spring Boot具有如下特性:

  • 为基于Spring的开发提供更快的入门体验
  • 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
  • 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器安全、指标,健康检测、外部配置等。
  • Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。

简单例子

  • 首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构。

pom.xml 文件

  • 注意:pom.xml 下载完成后出现错误。以下有两种情况
  • 1、如果是某些包没有下载成功,可以删掉指定去maven本地库中删掉指定文件夹,然后重新编译项目,让maven重新下载包。

  • 2、如果出现以下错误,则右键项目,【Maven】【Update Project Configuration…】即可。

    <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>
      
      	<groupId>com.etc</groupId>
      	<artifactId>SpringBoot</artifactId>
      	<version>0.0.1-SNAPSHOT</version>
      	<packaging>jar</packaging>
      
      	<name>SpringBoot</name>
      	<description></description>
      
      	<parent>
      		<groupId>org.springframework.boot</groupId>
      		<artifactId>spring-boot-starter-parent</artifactId>
      		<version>1.5.8.RELEASE</version>
      		<relativePath/> <!-- lookup parent from repository -->
      	</parent>
      
      	<properties>
      		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      		<java.version>1.8</java.version>
      	</properties>
      
      	<dependencies>
      		<!-- spring-boot-starter-*这里的*代表spring里头的某个功能 -->
      		<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>
      		</dependency>
      		<!-- 启动热部署 -->
      		<dependency>
      	        <groupId>org.springframework.boot</groupId>
      	        <artifactId>spring-boot-devtools</artifactId>
      	        <scope>provided</scope>
      	        <optional>true</optional>
      	    </dependency>
      	</dependencies>
      
      	<build>
      		<plugins>
      			<plugin>
      				<groupId>org.springframework.boot</groupId>
      				<artifactId>spring-boot-maven-plugin</artifactId>
      				<dependencies>
                          <dependency>
                              <groupId>org.springframework</groupId>
                              <artifactId>springloaded</artifactId>
                              <version>1.2.6.RELEASE</version>
                          </dependency>
                      </dependencies>
      			</plugin>
      		</plugins>
      	</build>
      </project>
    复制代码

对pom的说明

  • 首先是增加了,增加父pom比较简单,而且spring-boot-starter-parent包含了大量配置好的依赖管理,在自己项目添加这些依赖的时候不需要写版本号。

  • 使用父pom虽然简单,但是有些情况我们已经有父pom,不能直接增加时,可以通过如下方式:

    <dependencyManagement>
      		     <dependencies>
      		        <dependency>
      		            <!-- Import dependency management from Spring Boot -->
      		            <groupId>org.springframework.boot</groupId>
      		            <artifactId>spring-boot-dependencies</artifactId>
      		            <version>1.2.3.RELEASE</version>
      		            <type>pom</type>
      		            <scope>import</scope><!—这个地方-->
      		        </dependency>
      		    </dependencies>
      		</dependencyManagement>
    复制代码

关于java.version属性

  • 上面pom.xml虽然没有出现这个属性,这里要特别提醒

  • Spring默认使用jdk1.6,如果你想使用jdk1.8,你需要在pom.xml的属性里面添加java.version,如下:

    <properties>
          <java.version>1.8</java.version>
      </properties>
    复制代码

添加spring-boot-starter-web依赖

  • Spring通过添加spring-boot-starter-*这样的依赖就能支持具体的某个功能。
  • 我们这个示例最终是要实现web功能,所以添加的是这个依赖。
  • 更完整的功能列表可以查看:Using-boot-starter-poms

添加spring-boot-maven-plugin插件

  • 该插件支持多种功能,常用的有两种,第一种是打包项目为可执行的jar包。
  • 在项目根目录下执行mvn package将会生成一个可执行的jar包,jar包中包含了所有依赖的jar包,只需要这一个jar包就可以运行程序,使用起来很方便。该命令执行后还会保留一个XXX.jar.original的jar包,包含了项目中单独的部分。
  • 生成这个可执行的jar包后,在命令行执行java -jar xxxx.jar即可启动项目。
  • 另外一个命令就是mvn spring-boot:run,可以直接使用tomcat(默认)启动项目。
  • 第二种功能就是热部署了,在我们开发过程中,我们需要经常修改,为了避免重复启动项目,我们可以启用热部署。

原文 

https://juejin.im/post/5d63f234f265da03d1555f70

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » springboot:进入大厂前需要领悟的宝典,你明白吗?

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址