springboot2入门

还在copy-paste代码吗?还在从另外的项目中拷贝JDBC、Mybaties、Spring等相关的XML配置吗?在使用Spring的时候,大家会发现,想成功布置一个web项目,需要配置许多的XML文件,并且这些步骤是一成不变的,会浪费很多时间在上面,严重影响开发效率。或许公司都有相应的基础架构,只要拷贝过来就可以成功的运行,但也是很繁琐的。为了解决这些重复的操作,简化开发人员的配置,更加关注核心业务,Springboot应运而生。

SpringBoot简单介绍

SpringBoot其实相当于Spring的简化版,在原有的基础上减少了许多工作量。使用SpringBoot,我们可以很方便的创建一个可运行的web程序。为什么呢?就因为它与生俱来的几大特点:

  1. 自动化配置。SpringBoot会根据导入的依赖,自动化配置相关信息,无需手动创建XML文件(创建相关bean)。
  2. 内嵌Servlet容器(Tomcat、Jetty等)。支持使用java -jar运行jar项目,无需打包为war。
  3. 提供Starter POM与第三方框架无缝集成。
  4. 快速搭建项目。
  5. 自带项目监控。添加spring-boot-starter-actuator依赖,就可以使用相应端点进行监控。

......

SpringBoot使用

在使用SpringBoot进行开发的时候,大家可以选择自己喜欢的编辑器,例如:Idea、Eclipse等。在这里,我使用Idea进行开发,自带SpringBoot插件,部署快速。

使用SpringBoot2.0的时候,大家请注意,该版本需要使用Maven3.3及以上和jdk1.8及以上。另外SpringBoot也支持与Gradle4.4及以上版本整合。下面开始进行项目搭建:

第一步:New->Project->Spring Initializr选择初始化项目的方式。springboot2入门_第1张图片

第二步:点击Next,设置Group、Artifact、Type、Packaging等。这些参数,大家一看就懂,不做过多介绍。springboot2入门_第2张图片

第三步:点击Next,出现该弹框,可供我们选择项目需要的依赖,这里可选SpringBoot与SpringCloud的相关集成。这里我们选择Web模块。springboot2入门_第3张图片

第四步:点击Next,该弹框填写项目名,项目路径。点击Finish完成项目搭建。springboot2入门_第4张图片

到这里,使用Idea创建SpringBoot的项目就完成了。首先,我们先来看看pom.xml的具体内容:



   org.springframework.boot
   spring-boot-starter-parent
   2.1.3.RELEASE
    

com.fanqie.springboot2
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot


   1.8



    
   
      org.springframework.boot
      spring-boot-starter-web
   
    
   
      org.springframework.boot
      spring-boot-starter-test
      test
   



   
      
         org.springframework.boot
         spring-boot-maven-plugin
      
   

接下来,了解项目结构以及作用:

springboot2入门_第5张图片

  • /src/main/java: 用于编写JAVA相关代码。
    • DemoApplication:项目主类,用于启动项目。
  • /src/main/resources:用于存放系统配置(application.properties或者application.yml...)。
    • /src/main/resources/static:用于存放一些静态文件(css,image,js...)。
    • /src/main/resources/templates:用于存放模板文件(FreeMarker、Thymeleaf...)。
    • application.properties:该文件用作项目配置,例如(数据源、端口、服务名、参数配置...)。
  • /src/test/java:用于进行单元测试。

在了解SpringBoot项目的基本结构和内容之后,我们再来看看一个简单的接口应该如何定义:

启动类:

@SpringBootApplication
@RestController
public class DemoApplication {

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

    @GetMapping("/hello")
    public String hello() {
        return "hello world";
    }
}

访问:springboot2入门_第6张图片

从代码可以发现,这只是一个简单的java类,但是通过运行该main方法,我们就可以启动一个web服务。是不是觉得特别简单,我们没有做任何XML配置,就可以实现如此复杂的功能(咳咳,原Spring挺复杂的)。现在我们来分析一下,它怎么实现的:

  1. @RestController。大家应该很好理解,就是Spring中原生注解,其中包含(@Controller @ResponseBody)使类作为控制层并且使该类所有方法返回json格式数据。
  2. @SpringBootApplication。该注解是SpringBoot提供给我们的,其中内含@Configuration、@EnableAutoConfiguration、@ComponentScan。无需XML配置,就是依靠@EnableAutoConfiguration,它会根据项目的依赖进行自动化配置,例如:这里项目依赖spring-boot-starter-web,SpringBoot就会自动化配置Tomcat、SpringMvc和Spring,自动认为这是一个web项目。@ComponentScan注解会自动扫描当前目录以及子目录下所有被(@Component,@Service,@Repository,@Controller等)修饰的类。

打包和运行

上面,我们是通过main方法启动的项目,还有什么方法能够运行项目呢?springboot提供给我们的方式:mvn spring-boot:run。当然,这都是我们在本地运行项目,如果我们想远程部署服务,应该如何操作呢?之前我们就已经说过,springboot可以通过配置spring-boot-maven-plugin,把项目打包成一个可执行jar。经常使用的打包方式:mvn clean package -Dmaven.test.skip=true(打包并跳过测试),使用该方式,我们就能够把项目打包成一个可执行的jar了,通常存放在/target目录下。现在就可以把可执行的jar包放在服务器进行启动运行,例如:java -jar demo.jar。

总结

SpringBoot其实是在Spring的基础上做了大量优化,减少开发人员配置,能够快速搭建一个可运行的web项目。支持jar方式打包以及运行,部署方便。使用SpringBoot,极大的提升了开发人员的效率。

源码见于https://gitee.com/hpaw/SpringBoot2Demo/tree/master。

 

你可能感兴趣的:(SpringBoot)