创建第一个SpringBoot项目,开启微服务之旅

很早之前,我们的服务应用都是单体架构,何为单体架构呢?就是说所有业务功能都被统一的打成一个war包,部署在一台服务器上,也被称之为 All In One。对,这样在我们以前看来,确实是能够正常的运转,好像也没什么毛病。但是你有没有想过一个问题,假如我们只是稍稍改动了某个模块中的一个类的代码,或者前端的某个html或者jsp页面稍稍做了调整,那即将要面临的将是整个项目的重新打包,发布。很是麻烦,也没有必要。同时,随着业务量的增加,系统会变得越来越繁琐,代码量也会变得越来越庞大,造成维护成本的飙升。

但随着马丁.福勒提出的微服务概念后,类似这样的问题可以说随之迎刃而解。到底微服务是一个什么样的东西呢?顾名思义,微服务即是很小的服务,就是将整个服务根据业务功能等层面进行一个独立的分割,拆分出来形成单一的服务。例如发送短信模块,订单模块,商品模块,贷款模块,他们各自都有各自的功能属性,完全可以抽取出来作为一个单独的子服务。这样的话,一个系统被细分成了多个子系统,极大的降低了系统的复杂度,以及各模块之间的耦合度。同时也能极大提升团队的开发效率。

说完微服务的大体概念后,下面就来讲讲SpringBoot到底是一个什么样的东西吧!

在很久以前的SSM项目,我们在搭建项目架构时,首先是不是得引入SSH整合的核心jar包,然后编写applicationContext.xml来开启包扫描,自动装配bean,开启事务等等配置,编写mybatis-config.xml来配置数据连接池,全局属性等,配置web.xml加载servlet容器等一系列的工作等着你去做,应该算是相当的繁琐了。但是现在这些工作不需要你再去做了,SpringBoot会给你做好,因为它引进了一个非常牛逼的功能,那就是自动装配,通过至关重要的@SpringBootApplication注解,就能帮你实现自动装配你所需的对象,配置数据源等等功能。是不是简单的太多了。简而言之,SpringBoot就是在Spring上进行了进一步的封装,提供了很多的开箱即用的starter,助力你快速的搭建项目的整体架构。此外,SpringBoot还内嵌了tomcat的容器,无须单独发布到新的servlet容器了,运行自动生成的Application类中的main方法即可。它还有很多的新的特性,这里就不再一一赘述了。我这仅仅只是大概的描述了下springboot的概念,有兴趣大家可以去spring的官网上继续深入学习,毕竟官方的才是最权威的。

下面,我们即将进入正题,初探一下SpringBoot,开启我们的微服务之旅吧!(用ida创建第一个SpringBoot应用)

  1. 启动idea,新建工程,选择Spring Initializr,JDK最好用1.8,因为Spring5.0之后好像就要求jdk在1.8以上,URL默认即可,然后点击【next】进入下一步!
  2. 填写groupId和ArtifactId,打包方式默认jar即可。因为SpringBoot项目默认是打成jar包的。然后点击【next】。
  3. 这一步,提供的是你可以使用到的开箱即用的组件,因为是咱们的第一个SpringBoot项目,那必须得来一个Hello Word对吧,所以这一步我选择了web模块,代表我集成了Spring的MVC模块,及SpringMVC。点击【next】进入下一步。
  4. 点击【finish】,等待项目的构建完成。
  5. 让我们来了解下pom文件的构成以及SpringBootApplication注解吧!因为我刚刚勾选了web模块,所以SpringBoot为我们快速构建了web模块。SpringBootApplication注解的作用是开启包扫描,并开启自动装配的功能。
    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.2.0.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<groupId>com.example</groupId>
    	<artifactId>demo</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>demo</name>
    	<description>Demo project for Spring Boot</description>
    
    	<properties>
    		<java.version>1.8</java.version>
    	</properties>
    
    	<dependencies>
    		<!--Spring的Web模块-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<!--Spring的test模块-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    			<exclusions>
    				<exclusion>
    					<groupId>org.junit.vintage</groupId>
    					<artifactId>junit-vintage-engine</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
    </project>
    

     

  6. 接下来,让我们开始实现Hello Word的功能吧!
    package com.example.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @SpringBootApplication
    public class DemoApplication {
    
    	public static void main(String[] args) {
    
    		SpringApplication.run(DemoApplication.class, args);
    
    	}
    
    	@RequestMapping("/test")
    	public void test(){
    		System.out.println("Hello Word!");
    	}
    
    }

     

  7. 启动我们的SpringBoot应用,即DemoApplication中的main方法即可。若看到port8080字样,即表示服务启动成功!
  8. 接下来,让我们试着去浏览器上访问下试试看吧,是不是能在控制台上打印Hello Word!访问的地址为localhost:8080/test
  9. 所有流程都结束了,一切测试顺利。这就是一个最简单的SpringBoot应用,是不是比之前的传统应用简单多了呢?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值