微服务架构之Spring Boot入门

            今天我们来说说微服务,但是首先要说说我们目前开发的大部分项目,目前我们开发的项目都是比较集中的单体应用,就是将所有功能集中在一起,在项目扩展过程中,升级,优化某一部分就会影响所有的模块,在管理和升级中有利有弊,并且所有模块相对集中,依赖较强,为了解决模块相对集中,资源使用相对集中的问题就出现了分布式,分布式可有效降低模块间的耦合和资源争用的问题。今天我们来说说spring的微服务,今天重入门开始,先说说Spring Boot。Spring是Spring推出的快速开发,内含容器的快速开发框架,Spring Boot使用约定大于配置的方式,自动根据依赖确定环境配置,达到快速开发快速上线的目的。

          

先上工程截图,这个是个maven工程,结构如下,今天的实例就是一个演示,比较简单,先不涉及yml和properties的配置说明,后续会专门详细讲解,因为spring boot是基于spring mvc的,如果你有spring mvc的相关开发经验,那么你就能很快的学会这个教程,并且理解他,接下来我们就先上代码,然后在进行讲解。

<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>Demo2</groupId>
	<artifactId>Demo2</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<!-- 移除嵌入式tomcat插件 -->
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
	</dependencies>
	<build>
		<finalName>Demo1</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>
这个是POM.Xml这里我们将工程打成了war包,同时测试tomcat中的性能情况,我们今天主要配置了基本的spring boot依赖。

package org.demo2.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}
package org.demo2.controller;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(Application.class);
    }
}
package org.demo2.controller;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableAutoConfiguration
public class SampleController {
	@RequestMapping("/sample")
	public String home() {
		return "Hello World!";
	}

}
通过以上三个类就可以完成基于内容容器和外置容器的测试了,我们先说下基于外置容器,外置容器我们需要对启动做些修改,需要初始化一个
SpringApplicationBuilder 
这个类,这类能被tomcat等servlet容器所识别并且执行。如果不需要,我们直接以java的执行形式,执行application即可。然后我们就可以在浏览器中访问了。

如果我们是基于spring boot的方式访问,我们在地址需要输入http://IP:port/requestURI

如果我们是基于web的方式访问,我们需要在实质输入 http://IP:port/project/requestURI

区别还是很大的,需要我们去注意的地方还是很多。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值